Pemetaan kerentanan suatu desa secara umum dapat digambarkan berdasarkan kondisi sosial dan infrastruktur yang diwakili oleh variabel seperti jumlah rumah tangga pengguna PLN (X1), jumlah surat miskin (X2), jumlah orang cacat (X3) dan akses desamenuju pusat kecamatan (X4) ( data diambil dari sebagian kecil penelitian Nooraeni dan Pramana, 2017). Lakukan Analisis Komponen utama terhadap keempat variabel dari 10 desa
Tahap 1:Input data kondisi 10 desa berdasarkan keempat variabel
PLN= c(60, 104, 108, 140, 84, 70,77,100,56,92)
Miskin = c( 10,22,18,31,61,83,30,25,21,56)
Cacat = c( 6,4,12,14,4,5,10,1,2,11)
Jarakcamat=c(11,2,24,7,11,3,15,15,20,11)
dataawal= data.frame (PLN,Miskin, Cacat, Jarakcamat)
Tahap 2: Karena satuan masing-masing variabel berbeda maka lakukan transformasi standarisasi normal baku
dataZ=scale(dataawal)
#Manual
zPLN= (PLN-mean(PLN))/sd(PLN)
zMiskin= (Miskin-mean(Miskin))/sd(Miskin)
zCacat = (Cacat-mean(Cacat))/sd(Cacat)
zJarakcamat=(Jarakcamat-mean(Jarakcamat))/sd(Jarakcamat)
dataZ= data.frame(zPLN,zMiskin, zCacat, zJarakcamat)
Tahap 3: Eksplorasi data sebelum lanjut ke analisis komponen utama
panel.cor= function(x,y, digits=2, prefix="", cex.cor,..)
{
usr= par("usr");on.exit (par(usr))
# 1.1. VISUALITATION 11
par (usr = c(0,1,0,1))
r=abs (cor(x,y))
txt= format(c(r,0.123456789), digits=digits)[1]
txt= paste(prefix, txt, sep="")
if(missing(cex.cor)) cex.cor=0.8/strwidth (txt)
text(0.5,0.5, txt, cex=cex.cor * r)
}
pairs(~PLN+Miskin+Cacat+Jarakcamat, data=dataawal, lower.panel=panel.smooth, upper.panel=panel.cor, main="scatterplot matriks")
pairs(~zPLN+zMiskin+zCacat+zJarakcamat, data=dataZ, lower.panel= panel.smooth, upper.panel= panel.cor, main="Scatterplot matriks standarisasi")
round(cor(dataawal), digits=3)
## PLN Miskin Cacat Jarakcamat
## PLN 1.000 -0.107 0.549 -0.153
## Miskin -0.107 1.000 -0.025 -0.458
## Cacat 0.549 -0.025 1.000 0.085
## Jarakcamat -0.153 -0.458 0.085 1.000
Tahap 4: Analisis komponen utama (input berupa dataframe) terdapat beberapa cara dalam melakukan pengolahan seperti:
dataawal_pca= princomp (dataawal, cor=TRUE)
summary(dataawal_pca, loadings=TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 1.2521127 1.2063809 0.8077648 0.56953924
## Proportion of Variance 0.3919466 0.3638387 0.1631210 0.08109374
## Cumulative Proportion 0.3919466 0.7557853 0.9189063 1.00000000
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4
## PLN 0.671 0.254 0.363 0.595
## Miskin -0.264 0.644 -0.602 0.390
## Cacat 0.680 0.140 -0.490 -0.527
## Jarakcamat 0.134 -0.707 -0.515 0.465
b.Analisis komponen utama dengan fungsi princomp() dan input data berupa dataZ(data terstandarisasi normal baku), matriks korelasi = “FALSE”, artinya struktur keragaman awalnya menggunakan matriks kovarians.
dataZ_pca = princomp (dataZ, cor=FALSE)
summary (dataZ_pca, loadings=TRUE)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 1.1878584 1.1444734 0.7663129 0.54031237
## Proportion of Variance 0.3919466 0.3638387 0.1631210 0.08109374
## Cumulative Proportion 0.3919466 0.7557853 0.9189063 1.00000000
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4
## zPLN 0.671 0.254 0.363 0.595
## zMiskin -0.264 0.644 -0.602 0.390
## zCacat 0.680 0.140 -0.490 -0.527
## zJarakcamat 0.134 -0.707 -0.515 0.465
Nilai simpangan baku (standar deviasi) pada baris pertama merupakan nilai akar positif dan nilai eigen (√𝝀i)
Nilai-nilai loading yang ditampilkan pada hasil di atas adalah nilai eigenvector yang dinormalisasi.
Persamaan komponen utama yang dihasilkan adalah
\(KU1= 0.671zPLN-0.264zMiskin+0.68zCacat+0.134zJarakcamat\)
\(KU2= 0.254zPLN+0.644zMiskin+0.14zCacat-0.707zJarakcamat\)
\(KU3= 0.363zPLN-0.602zMiskin-0.49zCacat-0.515zJarakcamat\)
\(KU4= 0.595zPLN+0.39zMiskin-0.527zCacat+0.465zJarakcamat\)
Untuk memberi nama -menginterpretasi-masing-masing komponen bisa berdasarkan besaran korelasi antara komponen i dengan variabel asalnya.
c. Cara selanjutnya untuk menampilkan nilai-nilai loading tiap komponen:
loadings(dataZ_pca)
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4
## zPLN 0.671 0.254 0.363 0.595
## zMiskin -0.264 0.644 -0.602 0.390
## zCacat 0.680 0.140 -0.490 -0.527
## zJarakcamat 0.134 -0.707 -0.515 0.465
##
## Comp.1 Comp.2 Comp.3 Comp.4
## SS loadings 1.00 1.00 1.00 1.00
## Proportion Var 0.25 0.25 0.25 0.25
## Cumulative Var 0.25 0.50 0.75 1.00
Tahap 5: Penentuan jumlah komponen utama yang akan digunakan selain dengan memperhatikan proporsi keragaman kumulatif juga dapat merujuk pada pola scree plot
screeplot(dataZ_pca, type="lines", col=4)
#atau
plot(dataZ_pca, type="lines",col=4)
Berdasarkan pola garis scree plot jumlah komponen utama yang dapat ditentukan adalah tiga. Penentuan jumlah komponen berdasarkan posisi titik kurva ketika mulai melandai. Pada gambar cree plot di atas pada posisi titik 3 kurva mulai melandai.
Tahap 6: Menampilkan nilai (score) komponen utama
dataZ_pca$scores
## Comp.1 Comp.2 Comp.3 Comp.4
## [1,] -0.63046802 -0.9427663 0.4156561 -1.07051212
## [2,] -0.07813221 0.6863873 1.6182223 -0.20343103
## [3,] 1.70529944 -1.3759597 -0.7205997 0.35876912
## [4,] 2.37709486 1.0987149 0.4419349 -0.04189657
## [5,] -0.87825425 0.6539660 -0.3483712 0.58477540
## [6,] -1.50362779 1.9703152 -0.6364659 -0.02585019
## [7,] 0.27212946 -0.4993585 -0.5919516 -0.53525236
## [8,] -0.41927475 -0.6863810 0.8459998 0.97330088
## [9,] -1.29099360 -1.7169923 -0.1593139 0.09024655
## [10,] 0.44622685 0.8120744 -0.8651108 -0.13014968
Nilai scores tersebut dapat digunakan untuk analisis lanjutan menggantikan keempat variabel asal yang diamati.
Input berupa matriks korelasi
Untuk mengetahui tingkat kemandirian anak-anak cacat tunagrahita usia SD di Kota Palembang maka dilakukan penelitian di beberapa sekolah tunagrahita Kota Palembang (data diambil dari penelitian Ardhila dan Nooraeni, 2017).Indikator yang dikumpulkan untuk mengukur kemandiriannya : kemampuan makan sendiri (X1), kemampuan minum sendriri (X2), kemampuan membersihkan diri,mandi (X3) dan kemampuan buang air (X4). Dari data sebanyak 70 siswa diperoleh matriks korelasinya sebagai berikut :
Tahap 1: input matriks korelasi
r= c( 1, 0.988, 0.881, 0.711, 0.988, 1, 0.884,0.697, 0.881, 0.884,1,0.861, 0.711, 0.697, 0.861, 1)
R= matrix(r,4,4)
Tahap 2: Hitung eigenvalue dan eigenvector dari matriks R
#eigen value
eigen(R)$value
## [1] 3.51718522 0.39534821 0.07618855 0.01127802
#eigenvector
eigen(R)$vector
## [,1] [,2] [,3] [,4]
## [1,] -0.5109560 0.4202210 0.2935221 0.69006022
## [2,] -0.5095528 0.4471000 0.1598647 -0.71756588
## [3,] -0.5157470 -0.1669555 -0.8368936 0.07576284
## [4,] -0.4618278 -0.7717783 0.4334711 -0.05635680
Tahap 3: Analisis komponen utama menggunakan princomp()
kemandirian_pca=princomp(covmat=R,cor=TRUE, n.obs= 70)
## Warning: In princomp.default(covmat = R, cor = TRUE, n.obs = 70) :
## extra argument 'n.obs' will be disregarded
summary(kemandirian_pca)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 1.8754160 0.62876721 0.27602274 0.106198003
## Proportion of Variance 0.8792963 0.09883705 0.01904714 0.002819504
## Cumulative Proportion 0.8792963 0.97813336 0.99718050 1.000000000
Berdasarkan nilai Cumulative Proportion, proprosi varians sampel yang dapat dijelaskan oleh komponen pertama sebesar 87,9 persen dari total keragaman sampel. Jika ditambahkan dengan komponen kedua maka Cumulative Proportion Varians sebesar 97,8 persen.
loadings (kemandirian_pca)
##
## Loadings:
## Comp.1 Comp.2 Comp.3 Comp.4
## [1,] 0.511 0.420 0.294 0.690
## [2,] 0.510 0.447 0.160 -0.718
## [3,] 0.516 -0.167 -0.837
## [4,] 0.462 -0.772 0.433
##
## Comp.1 Comp.2 Comp.3 Comp.4
## SS loadings 1.00 1.00 1.00 1.00
## Proportion Var 0.25 0.25 0.25 0.25
## Cumulative Var 0.25 0.50 0.75 1.00
Nilai loading yang diperoleh hasilnya sama dengan nilai eigenvector normalized. Nilai loading ini digunakan sebagai koefisien dari fungsi komponen utamanya.
Persamaan komponen utama yang dihasilkan:
\(KU1=0.511X1+O.51X2+0.516X3+0.462X4\)
\(KU2= 0.42X1+0.447X2-0.167X3-0.772X4\)
\(KU3= 0.294X1+0.16X2-0.837X3+0.433X4\)
\(KU4= 0.69X1-0.718X2\)