library (readxl)
## Warning: package 'readxl' was built under R version 4.3.2
library (missMDA)
## Warning: package 'missMDA' was built under R version 4.3.3
data <- read_excel("D:/Konsultan Data DA 24/1. PCA/data_pca.xlsx")
data
## # A tibble: 77 × 10
##    PJP     `Year Tahun` `jumlah transaksi`   Volume `Jumlah pengguna` Permodalan
##    <chr>          <dbl>              <dbl>    <dbl>             <dbl>      <dbl>
##  1 KSP In…         2023                 NA NA                      NA         NA
##  2 KSP Sa…         2023             736750  1.43e13             40759        138
##  3 PT Abl…         2023                274  4.08e11                75        107
##  4 PT Ach…         2023             160296  3.85e12              4737      21654
##  5 PT Adi…         2023               8266  7.63e10              8266        503
##  6 PT Agu…         2023                 64  1.06e11             21301         49
##  7 PT And…         2023                 NA NA                      NA         NA
##  8 PT Art…         2023             150839  1.04e12             43297        141
##  9 PT Ary…         2023                316  2.63e10                 0          0
## 10 PT Asi…         2023                  0 NA                       0          0
## # ℹ 67 more rows
## # ℹ 4 more variables: `Total Asset` <dbl>, laba <dbl>,
## #   `Jumlah pengguna jasa layanan remitansi` <dbl>, `on going capital` <dbl>
str(data)
## tibble [77 × 10] (S3: tbl_df/tbl/data.frame)
##  $ PJP                                   : chr [1:77] "KSP Indosurya Cipta" "KSP Sahabat Mitra Sejati" "PT Able Remittance" "PT Achilles Financial System" ...
##  $ Year Tahun                            : num [1:77] 2023 2023 2023 2023 2023 ...
##  $ jumlah transaksi                      : num [1:77] NA 736750 274 160296 8266 ...
##  $ Volume                                : num [1:77] NA 1.43e+13 4.08e+11 3.85e+12 7.63e+10 ...
##  $ Jumlah pengguna                       : num [1:77] NA 40759 75 4737 8266 ...
##  $ Permodalan                            : num [1:77] NA 138 107 21654 503 ...
##  $ Total Asset                           : num [1:77] NA NA 1.74e+08 1.99e+10 2.20e+09 ...
##  $ laba                                  : num [1:77] NA 2.75e+10 -2.65e+07 0.00 1.66e+08 ...
##  $ Jumlah pengguna jasa layanan remitansi: num [1:77] 0 40759 75 4737 8266 ...
##  $ on going capital                      : num [1:77] NA 8.95e+09 3.97e+08 1.68e+10 3.49e+08 ...
data <- subset(data, select = -c(`Year Tahun`))
data <- subset(data, select = -c(PJP))
data
## # A tibble: 77 × 8
##    `jumlah transaksi`   Volume `Jumlah pengguna` Permodalan `Total Asset`
##                 <dbl>    <dbl>             <dbl>      <dbl>         <dbl>
##  1                 NA NA                      NA         NA            NA
##  2             736750  1.43e13             40759        138            NA
##  3                274  4.08e11                75        107     174205213
##  4             160296  3.85e12              4737      21654   19904971677
##  5               8266  7.63e10              8266        503    2195530169
##  6                 64  1.06e11             21301         49   39149144969
##  7                 NA NA                      NA         NA            NA
##  8             150839  1.04e12             43297        141   15843831944
##  9                316  2.63e10                 0          0    3114830954
## 10                  0 NA                       0          0   15000000000
## # ℹ 67 more rows
## # ℹ 3 more variables: laba <dbl>,
## #   `Jumlah pengguna jasa layanan remitansi` <dbl>, `on going capital` <dbl>

Untuk mengatasi missing value dengan mempertimbangkan hubungan antar variabel dan persamaan antar individu dqalam perhitungannya

str(data)
## tibble [77 × 8] (S3: tbl_df/tbl/data.frame)
##  $ jumlah transaksi                      : num [1:77] NA 736750 274 160296 8266 ...
##  $ Volume                                : num [1:77] NA 1.43e+13 4.08e+11 3.85e+12 7.63e+10 ...
##  $ Jumlah pengguna                       : num [1:77] NA 40759 75 4737 8266 ...
##  $ Permodalan                            : num [1:77] NA 138 107 21654 503 ...
##  $ Total Asset                           : num [1:77] NA NA 1.74e+08 1.99e+10 2.20e+09 ...
##  $ laba                                  : num [1:77] NA 2.75e+10 -2.65e+07 0.00 1.66e+08 ...
##  $ Jumlah pengguna jasa layanan remitansi: num [1:77] 0 40759 75 4737 8266 ...
##  $ on going capital                      : num [1:77] NA 8.95e+09 3.97e+08 1.68e+10 3.49e+08 ...
nb <- estim_ncpPCA(data, scale = TRUE)
# Mendapatkan nilai NCP dari list
ncp <- nb$ncp

# Melakukan imputasi PCA dengan nilai NCP yang diperoleh
comp <- imputePCA(data, ncp = ncp, scale = TRUE)
library(stats)
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.3
res.pca <- PCA(comp$completeObs)

# Mengekstrak hasil PCA
summary(res.pca)
## 
## Call:
## PCA(X = comp$completeObs) 
## 
## 
## Eigenvalues
##                        Dim.1   Dim.2   Dim.3   Dim.4   Dim.5   Dim.6   Dim.7
## Variance               3.610   2.764   1.024   0.459   0.069   0.062   0.012
## % of var.             45.122  34.547  12.800   5.738   0.865   0.774   0.154
## Cumulative % of var.  45.122  79.669  92.469  98.206  99.071  99.846 100.000
##                        Dim.8
## Variance               0.000
## % of var.              0.000
## Cumulative % of var. 100.000
## 
## Individuals (the 10 first)
##                                            Dist    Dim.1    ctr   cos2    Dim.2
## 1                                      |  0.306 | -0.306  0.034  0.996 | -0.006
## 2                                      |  0.374 |  0.057  0.001  0.023 | -0.149
## 3                                      |  0.631 | -0.390  0.055  0.382 | -0.425
## 4                                      |  0.544 | -0.300  0.032  0.304 | -0.409
## 5                                      |  0.625 | -0.365  0.048  0.342 | -0.425
## 6                                      |  0.604 | -0.315  0.036  0.272 | -0.421
## 7                                      |  0.436 | -0.293  0.031  0.451 | -0.321
## 8                                      |  0.592 | -0.218  0.017  0.135 | -0.190
## 9                                      |  0.636 | -0.398  0.057  0.392 | -0.415
## 10                                     |  0.605 | -0.345  0.043  0.325 | -0.454
##                                           ctr   cos2    Dim.3    ctr   cos2  
## 1                                       0.000  0.000 | -0.004  0.000  0.000 |
## 2                                       0.010  0.158 | -0.145  0.027  0.151 |
## 3                                       0.085  0.453 | -0.153  0.030  0.059 |
## 4                                       0.079  0.566 | -0.159  0.032  0.086 |
## 5                                       0.085  0.462 | -0.151  0.029  0.059 |
## 6                                       0.083  0.485 | -0.148  0.028  0.060 |
## 7                                       0.048  0.542 |  0.022  0.001  0.002 |
## 8                                       0.017  0.103 | -0.172  0.037  0.084 |
## 9                                       0.081  0.426 | -0.154  0.030  0.058 |
## 10                                      0.097  0.563 | -0.149  0.028  0.061 |
## 
## Variables
##                                           Dim.1    ctr   cos2    Dim.2    ctr
## jumlah transaksi                       |  0.966 25.877  0.934 |  0.018  0.012
## Volume                                 |  0.850 20.032  0.723 |  0.122  0.538
## Jumlah pengguna                        |  0.983 26.782  0.967 |  0.023  0.019
## Permodalan                             | -0.058  0.094  0.003 |  0.093  0.313
## Total Asset                            | -0.005  0.001  0.000 |  0.954 32.948
## laba                                   | -0.116  0.372  0.013 |  0.962 33.517
## Jumlah pengguna jasa layanan remitansi |  0.983 26.782  0.967 |  0.023  0.019
## on going capital                       | -0.047  0.061  0.002 |  0.950 32.635
##                                          cos2    Dim.3    ctr   cos2  
## jumlah transaksi                        0.000 |  0.030  0.089  0.001 |
## Volume                                  0.015 | -0.047  0.211  0.002 |
## Jumlah pengguna                         0.001 |  0.026  0.064  0.001 |
## Permodalan                              0.009 |  0.993 96.388  0.987 |
## Total Asset                             0.911 |  0.105  1.074  0.011 |
## laba                                    0.926 | -0.132  1.700  0.017 |
## Jumlah pengguna jasa layanan remitansi  0.001 |  0.026  0.064  0.001 |
## on going capital                        0.902 | -0.065  0.410  0.004 |

dimensi pertama (Dim.1) adalah yang paling signifikan, karena memiliki eigenvalue tertinggi dan persentase varians yang paling tinggi (45,12%). Kemudian, secara berurutan, dimensi kedua, ketiga, dan seterusnya menyumbang varians tambahan yang signifikan. Dengan menggunakan informasi ini,dapat dipilih jumlah dimensi (komponen utama) yang akan digunakan dalam analisis Anda, tergantung pada seberapa banyak varians yang ingin Anda pertahankan. Misalnya, jika Anda ingin menjaga minimal 80% varians, Anda mungkin akan memilih untuk menggunakan dua atau tiga dimensi pertama.

# Membuat biplot
plot(res.pca, choix = "var")

mi <- MIPCA(data, scale =TRUE, ncp = ncp)
plot(mi)

## $PlotIndProc

## 
## $PlotDim

## 
## $PlotIndSupp

## 
## $PlotVar

# Melihat koordinat variabel dalam ruang komponen utama
res.pca$var$coord
##                                               Dim.1      Dim.2       Dim.3
## jumlah transaksi                        0.966482423 0.01787722  0.03024020
## Volume                                  0.850347978 0.12190983 -0.04651341
## Jumlah pengguna                         0.983243807 0.02282557  0.02556881
## Permodalan                             -0.058183993 0.09302238  0.99348057
## Total Asset                            -0.004621196 0.95425719  0.10486028
## laba                                   -0.115943149 0.96245024 -0.13195430
## Jumlah pengguna jasa layanan remitansi  0.983244325 0.02290070  0.02556934
## on going capital                       -0.046848491 0.94970284 -0.06477764
##                                              Dim.4        Dim.5
## jumlah transaksi                        0.15176259  0.013125310
## Volume                                 -0.50470267 -0.037604075
## Jumlah pengguna                         0.15373032  0.016953124
## Permodalan                              0.01737771  0.011352261
## Total Asset                            -0.26368639 -0.009847688
## laba                                    0.07473072  0.187702492
## Jumlah pengguna jasa layanan remitansi  0.15371468  0.016960301
## on going capital                        0.24204359 -0.177675367

Komponen utama masing-masing dimensi: Dimensi 1: “Jumlah pengguna”, “Jumlah pengguna jasa layanan remitansi”, dan “Volume”. Dimensi 2: “Total Asset”, “laba”, dan “on going capital”

Dim.1=0.966×jumlah transaksi+0.850×Volume+0.983×Jumlah pengguna−0.058×Permodalan−0.005×Total Asset−0.116×laba+0.983×Jumlah pengguna jasa layanan remitansi−0.047×on going capital

Dim.2=0.018×jumlah transaksi+0.122×Volume+0.023×Jumlah pengguna+0.093×Permodalan+0.954×Total Asset+0.962×laba+0.023×Jumlah pengguna jasa layanan remitansi+0.950×on going capital