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