Professional Documents
Culture Documents
1. Analisis Komponen Utama Analisis komponen utama digunakan untuk menjelaskan struktur matriks varianskovarians dari suatu set variabel melalui kombinasi linier dari variabel-variabel tersebut. Secara umum komponen utama dapat berguna untuk reduksi dan interpretasi variabel-variabel. Misalkan saja terdapat p buah variabel yang terdiri atas n buah objek. Misalkan pula bahwa dari p buah variabel tersebut dibuat sebanyak k buah komponen utama (dengan k <= p) yang merupakan kombinasi linier atas p buah variabel tersebut. k komponen utama tersebut dapat menggantikan p buah variabel yang membentuknya tanpa kehilangan banyak informasi mengenai keseluruhan variabel. Umumnya analisis komponen utama merupakan analisis intermediate yang berarti hasil komponen utama dapat digunakan untuk analisis selanjutnya. Dalam bentuk matematis, katakan saja bahwa Y merupakan kombinasi linier dari variabel-variabel X1, X2, , Xp yang dapat dinyatakan sebagai
Y = W1X1 + W2X2 + + WpXp dengan Wi Xi Y adalah bobot atau koefisien untuk variabel ke i adalah variabel ke i adalah kombinasi linier dari variabel X
Secara prinsip pembentukan komponen utama merupakan pembentukan kombinasi linier dari variabel-variabel yang diamati. Dalam analisis komponen utama ditentukan suatu metode untuk mendapatkan nilai-nilai koefisien atau bobot dari kombinasi linier variabel-variabel pembentuknya dengan ketentuan sebagai berikut Bertho Tantular - 1
Bertho Tantular - 3
2. Analisis Komponen Utama dalam R (a) Fungsi princomp Analisis Komponen Utama dalam software R dapat dianalisis menggunakan fungsi princomp. Fungsi princomp menganalisis komponen utama dari data berupa matriks numerik dan menghasilkan nilai-nilai berupa suatu objek dalam kelas princomp. Penjelasan mengenai syntax dan penggunaan fungsi princomp adalah sebagai berikut
> fit_pca <- princomp(x, ...) atau > fit_pca <- princomp(formula, data = NULL, subset, na.action, ...) atau > fit_pca <- princomp(x, cor = FALSE, scores = TRUE, covmat = NULL, subset = rep(TRUE, nrow(as.matrix(x))), ...)
Keterangan: formula: data: adalah formula untuk variabel numerik tanpa melibatkan variabel respon data yang digunakan berupa data frame meliputi variabel-variabel dalam formula Sebagai default diambil variabel dari environment(formula). subset: sebuah vektor yang digunakan untuk memilih baris (pengamatan) dari matriks X Bertho Tantular - 4
Nilai-nilai yang dapat ditampilkan hasil analisis fungsi princomp adalah sebagai berikut
simpangan baku (standard deviation) dari komponen utamanya matriks variabel loading yaitu matriks yang kolom-kolomnya berupa eigen center: rata-rata yang digunakan.
transformasi dari tiapvariabel. banyak pengamatan. nilai-nilai komponen utamanya bila ada penanganan data hilang
Bertho Tantular - 5
untuk menampilkan nilai varians untuk menampilkan nilai loadings untuk membuat scree plot untuk menampilkan nilai komponen utama
Dalam fungsi princomp analisis komponen utama menggunakan nilai eigen dari matriks korelasi atau matriks varians-kovarians. Analisis komponen utama yang menggunakan dekomposisi nilai singular dari matriks X berada dalam fungsi lain yaitu prcomp. Fungsi print dapat digunakan untuk menampilkan hasil analisis dan fungsi plot dapat digunakan untuk menampilkan screeplot.
Contoh Kasus 1: Jolicoeur dan Mosimann mempelajari mengenai hubungan antara ukuran dan bentuk sejenis kura-kura. Pada penelitiannya mereka mengambil sampel sebanyak 24 kura-kura jantan dan 24 kura-kura betina dan diukur panjang, lebar dan tinggi kura-kura tersebut. (data diambil dari Johnson & Wichern, 2002 halaman 339) Sebelum melakukan analisis dengan definisikan variabel X1 = length, X2 = width, X3 = height dan X4 = sex kemudian input dulu data tersebut menggunakan software R sebagai berikut
Bertho Tantular - 6
>
x3<-
Lakukan transformasi sederhana terhadap data (x1, x2 dan x3) tersebut menggunakan log sebagai berikut
> y1<-log(x1) > y2<-log(x2) > y3<-log(x3) > y<-data.frame(y1,y2,y3) > Y<-y[25:48,]
> fit_pca<-princomp(Y, cor=FALSE) > summary(fit_pca) Importance of components: Comp.1 Standard deviation Comp.2 Comp.3
Proportion of Variance 0.9605077 0.02466069 0.01483157 Cumulative Proportion 0.9605077 0.98516843 1.00000000
Terlihat dari proporsi varians kumulatif Komponen pertama dapat menjelaskan 96% total varians dan bila ditambahkan komponen kedua menjadi 98%. Artinya apabila kita hanya mengambil satu komponen saja yaitu komponen pertama sudah mencukupi. Nilai simpangan baku (standard deviation) pada baris pertama hasil diatas diperoleh dari akar positif nilai eigen (eigen value) matriks kovarians dari log(y1), log(y2) dan log(y3). Bertho Tantular - 7
Comp.1 Comp.2 Comp.3 SS loadings Proportion Var Cumulative Var 1.000 0.333 0.333 1.000 0.333 0.667 1.000 0.333 1.000
Nilai-nilai loading yang ditampilkan pada hasil di atas adalah nilai vektor eigen dari matriks kovarians log(y1), log(y2) dan log(y3). Fungsi komponen utamanya adalah sebagai berikut
KU1 = 0.683 log(y3) + 0.510 log(y3) + 0.523 log(y3) KU2 = -0.159 log(y3) - 0.594 log(y3) + 0.788 log(y3) KU3 = 0.713 log(y3) - 0.622 log(y3) - 0.324 log(y3)
Untuk membuat dan menampilkan scree plot dilakukan dengan cara sebagai berikut
> plot(fit_pca,type="lines")
Bertho Tantular - 8
Dari scree plot tersebut terlihat bahwa kurva mulai landai pada titik comp 2 artinya bahwa dengan satu komponen saja sudah mencukupi untuk mewakili ketiga variabel tersebut Menampilkan nilai (score) komponen utama
33 -0.106371042 -0.0012452738
34 -0.006575259 -0.0167441765 -0.0071889505 35 -0.006268452 -0.0114497088 36 -0.011979592 37 0.060886922 0.0008012246 0.0061739765 0.0267516989
0.0280465362 -0.0125896593
Bertho Tantular - 9
0.0212894116 -0.0162796865
Contoh Kasus 2: Data berikut mengenai rates of return dari lima saham perusahaan yaitu Allied Chemical, du Pont, Union Carbide, Exxon dan Texaco yang berada di pasar saham New York yang diambil pada periode 1975 hingga Desember 1976. Berdasarkan nilai penutupan pada hari Jum'at rates of return didefiniskan sebagai
rates of return=
Harga penutupan Jum ' at iniHarga penutupan Jum ' at sebelumnya Harga penutupan Jum ' at sebelumnya
Diasumsikan bahwa pengamatan saling bebas dalam hal ini adalah minggu dan saham perusahaan adalah variabelnya yang saling berkorelasi. Dari data sebanyak 100 minggu diperoleh vektor rata-ratanya adalah
Bertho Tantular - 10
R merupakan matriks varians-kovarians dari matriks pengamatan yang sudah dibakukan. (Johnson dan Wichern, 2002) Dalam kasus ini yang diketahui adalah matriks kovarians atau matriks korelasi maka fungsi princomp digunakan dengan cara sebagai berikut
[,1]
[,2]
[,3]
[,4]
[,5]
[1,] 1.000 0.577 0.509 0.387 0.462 [2,] 0.577 1.000 0.599 0.389 0.322 [3,] 0.509 0.599 1.000 0.436 0.426 [4,] 0.387 0.389 0.436 1.000 0.523 [5,] 0.462 0.322 0.426 0.523 1.000
Bertho Tantular - 11
0.6624447 -0.4000072
[4,] -0.4214588 -0.5256649 -0.5407628 -0.4720060 -0.1755986 [5,] -0.4212245 -0.5819699 0.4351755 0.3824388 0.3850245
> fit_pca2<-princomp(covmat=R, cor=TRUE, n.obs=100) > summary(fit_pca2) Importance of components: Comp.1 Standard deviation Comp.2 Comp.3 Comp.4 Comp.5
Proportion of Variance 0.5713422 0.1618327 0.1079350 0.09030002 0.06858999 Cumulative Proportion 0.5713422 0.7331749 0.8411100 0.93141001 1.00000000
dari hasil perhitungan tersebut terlihat bahwa proporsi varians untuk komponen 1 baru mencapai 57% dan apabila diambil dua komponen proporsi varians mencapai 73%.
> loadings(fit_pca2) Loadings: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 [1,] -0.464 [2,] -0.457 [3,] -0.470 0.240 0.612 -0.387 -0.451 0.676
0.662 -0.400
[4,] -0.421 -0.526 -0.541 -0.472 -0.176 [5,] -0.421 -0.582 0.435 0.382 0.385
Bertho Tantular - 12
Nilai loading yang diperoleh hasilnya sama dengan nilai eigen vektor. Nilai loading ini digunakan sebagai koefisien dari fungsi komponen utamanya.
(2) Fungsi prcomp Selain menggunakan fungsi princomp analisis komponen utama juga dapat menggunakan fungsi prcomp. Fungsi prcomp menganalisis komponen utama menggunakan dekomposisi nilai singular (singular value decomposition atau svd) dari matriks data berbeda dengan fungsi princomp yang menggunakan nilai eigen dari matriks varians-kovarians. Fungsi print dapat digunakan untuk menampilkan hasil analisis dan fungsi plot dapat digunakan untuk menampilkan screeplot. Berikut penjelasan syntax dan pengunaannya.
> prcomp(x, ...) atau > prcomp(formula, data = NULL, subset, na.action, ...) atau > prcomp(x, retx = TRUE, center = TRUE, scale. = FALSE, tol = NULL, ...)
keterangan: formula: data: adalah formula untuk variabel numerik tanpa melibatkan variabel respon data yang digunakan berupa data frame meliputi variabel-variabel dalam formula Sebagai default diambil variabel dari environment(formula). subset: sebuah vektor yang digunakan untuk memilih baris (pengamatan) dari matriks X
Bertho Tantular - 13
Nilai-nilai yang dapat ditampilkan hasil analisis fungsi princomp adalah sebagai berikut
sdev:
Nilai simpangan baku dari komponen utamanya. Yaitu akar dari nilai eigen matriks varians-kovarians atau matriks korelasinya melalui perhitungan nilai singular matriks
data.rotation: adalah matriks variabel loading. Yaitu matriks yang kolom-kolomnya merupakan nilai-nilai eigen matriks varians-kovarians. x: adalah nilai dari data yang telah dirotasikan. Nilai ini akan ada apabila fungsi retx bernilai TRUE . center, scale: adalah nilai pemusatan dan pembakuan yang digunakan
Penggunaan fungsi prcomp dapat dilakukan pada contoh kasus 1 dengan cara sebagai berikut
Bertho Tantular - 14
Proportion of Variance 0.961 0.0247 0.0148 Cumulative Proportion 0.961 0.9852 1.0000
29 -0.120728388 -0.0149572760
0.0135333730 -0.0051929344
0.041862973 -0.0108766303 -0.0089785626 0.047500815 -0.0174403631 -0.0021060793 0.070171264 -0.0330572711 -0.0006647271 0.040553932 -0.0277470963 -0.0419820919 0.112788083 0.0212894116 0.0162796865 0.0085075394
Bertho Tantular - 15
0.294468494 -0.0232075863
Dengan cara ini menghasilkan nilai skor komponen utama yang sama dengan cara sebelumnya. Nilai proporsi varians untuk tiap komponen utama juga bernilai sama dengan cara sebelumnya. Selain menggunakan fungsi princomp dan prcomp analisis komponen utama juga dapat dilakukan dengan fungsi principal. Tetapi fungsi principal ini hanya dapat dilakukan apabila telah diinstallkan paket psych. Paket psych dapat diunduh secara gratis di CRAN (http://cran.rproject.org/).
Bertho Tantular - 16
Bertho Tantular - 17
dengan: i = rata-rata variabel asal ke i i = spesifik faktor ke i Fj = Common faktor ke j. lij disebut loading dari peubah asal ke i pada faktor ke j. Atau dalam bentuk matriks menjadi
(X ) (px1)
Asumsi yang digunakan dalam analisis faktor adalah: Data berasal dari populasi yang berdistribusi normal univariat Dalam set data terdapat multikolinieritas dapat diuji dengan menggunakan Uji Bartlett. E(F) = 0, E(e) = 0
Koefisien lij disebut loading dari variabel asal ke i pada faktor ke j, maka matriks L adalah matriks factor loading dan F1, F2,., Fm , 1, 2,. p adalah tidak terobservasi.
Bertho Tantular - 18
2. Analisis Faktor dalam R Analisis Faktor dalam software R dapat dianalisis melalui fungsi factanal(). Fungsi factanal() adalah analisis ekstraksi faktor menggunakan metode kemungkinan maksimum. Dalam software R, penjelasan tentang model analisis faktor adalah sebagai berikut
x=f+e
dengan x adalah vektor berukuran (p x 1), adalah matriks loading berukuran (p x k), f adalah vektor skor faktor berukuran (k x 1) dan e adalah galat berukuran (p X 1). Dalam model ini tidak ada komponen yang terobservasi kecuali x. Asumsi yang mendasari model ini adalah bahwa faktor tidak saling berkorelasi, dan bahwa galat saling bebas dengan varians phi yang disebut uniquenesses. Kemudian dalam analisi faktor model bagi matriks varians-kovarians x adalah
=' +i
Apabila dilakukan rotasi terhadap data maka dapat digantikan dengan G untuk setiap Bertho Tantular - 19
1 F =' X
dan kemudian menggantikan nilai-nilai parameter dengan penaksirnya. Prinsip Metode Bartlett adalah meminimumkan jumlah kuadrat galat yang sudah dibakukan atau diboboti. Uraian berikut ini adalah penjelasan syntax dan cara penggunaannya.
> factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA, subset, na.action, start = NULL, scores = c("none", "regression", "Bartlett"), rotation = "varimax", control = NULL, ...)
Keterangan:
Bertho Tantular - 20
loadings: ke
kecil berdasarkan jumlah kuadrat loading.. uniquenesses: correlation: criteria: menampilkan nilai uniquenesses. menampilkan matriks korelasi yang digunakan. hasil dari optimalisasi yaitu nilai -2 log-likelihood dan informasi iterassi yang digunakan factors: dof: The argument factors. menampilkan nilai derajat kebebasan model analisis faktor
Bertho Tantular - 21
Dalam analisis faktor ada banyak variasi penggunaannya sehingga sulit bagi kita untuk membandingkan output dari program yang berbeda-beda. Bagaimanapun metode optimalisasi dalam analisis faktor menggunakan maximum likelihood cukup sulit.
> fit <- factanal(dataku, factors=banyak_faktor, rotation="varimax") > print(fit, digits=2, cutoff=.3, sort=TRUE) > load <- fit$loadings > plot(load,type="n") > text(load,labels=names(mydata),cex=.7) # Output analisis faktor # Menampilkan loading factor # plot faktor 1 dan faktor 2 # menambahkan nama variabel
Contoh Kasus 1 Dalam suatu studi consumer-preference diambil sampel acak dari sejumlah konsumen. Kepada mereka ditanyakan mengenai 5 atribut dari sebuah produk baru. Respon dari konsumen menggunakan skala 7 semantik differensial, yang hasilnya telah dihitung menjadi matriks korelasi berikut ini (Johnson & Wichern, 2002 halaman 487)
Atribut (Variabel) Taste Good buy for money Flavor Suitable for snack Provides lots energy
Sebelum menganalisis data tersebut perlu diinputkan dulu matriks korelasinya dengan cara sebagai berikut
> mc<matrix(c(1,.02,.96,.42,.01,.02,1,.13,.71,.85,.96,.13,1,.5,.11,.42,.71,.5,1,.7 9,.01,.85,.11,.79,1), 5, 5) > mc [,1] [,2] [,3] [,4] [,5] [1,] 1.00 0.02 0.96 0.42 0.01 [2,] 0.02 1.00 0.13 0.71 0.85 [3,] 0.96 0.13 1.00 0.50 0.11 [4,] 0.42 0.71 0.50 1.00 0.79 [5,] 0.01 0.85 0.11 0.79 1.00
Bertho Tantular - 23
Factor1 Factor2 SS loadings Proportion Var Cumulative Var 2.396 0.479 0.479 2.078 0.416 0.895
The degrees of freedom for the model is 1 and the fit was 0.0233
Dari output diatas terlihat bahwa Faktor 1 beranggotakan variabel 2, variabel 4 dan variabel 5 sedangkan variabel 1 dan variabel 3 berada pada Faktor 2.
3. Menentukan Banyak Faktor Hal yang penting dalam analisis faktor adalah menentukan berapa banyak faktor yang mesti diambil. Beberapa metode dapat digunakan untuk menentukan banyak faktor, misalnya menggunakan kriteria nilai eigen, proporsi varians dan secara grafis menggunakan screeplot. Untuk itu dalam software R disediakan paket nFactors. Fungsi yang digunakan dalam paket ini adalah nScree, uraian berikut adalah penjelasan mengenai syntax dan contoh penggunaannya Fungsi nScree dalam software R adalah suatu fungsi untuk menganalisis banyaknya komponen atau faktor dalam analisis faktor eksplanatori. Fungsi ini berguna untuk memberikan informasi mengenai banyak faktor melalui aturan Kaiser dan analisis paralel.
Keterangan: eig: adalah parameter berupa eigenvalues yang akan dianalisis Bertho Tantular - 24
Components
: berupa data frame yang berisi banyaknya komponen atau faktor yang didasarkan atas aturan yang berbeda
Components$noc Components$naf
: Banyaknya komponen atau faktor berdasarkan koordinat optimal (oc) : Banyaknya komponen atau faktor berdasarkan acceleratoin factor (af)
Components$npar.analysis : Banyaknya komponen atau faktor berdasarkan koordinat analisis paralel Components$nkaiser : Banyaknya komponen atau faktor berdasarkan aturan Kaiser Analysis : Berupa Data frame berisi vektor yang berkaitan dengan aturan yang berbeda Analysis$Eigenvalues : Menampilkan nilai eigen Analysis$Prop Analysis$Cumu Analysis$Pred.eig Analysis$OC : Nilai proporsi varians yang dihitung dari nilai eigen : proporsi kumulatif dari varians yang dihitung dari nilai eigen : prediksi nilai eigen dari setiap koordinat garis regresi optimal : nilai koordinat optimal (oc)
Analysis$Acc.factor : nilai Acceleration factor _af_ Analysis$AF : nilai kritis acceleration factor _af_
Bertho Tantular - 25
Secara umum contoh penggunaan paket nFactors untuk data pada Contoh kasus 1 dengan banyak pengamatan adalah 200 dapat dilihat pada syntax berikut ini
# Menentukan banyak faktor yang diekstraksi > library(nFactors) > ev <- eigen(mc) # get eigenvalues > ap <- parallel(subject=200,var=5,rep=100,cent=.05) > nS <- nScree(ev$values, ap$eigen$qevpea) > plotnScree(nS)
Bertho Tantular - 26
1.1171429 0.2392734 0.2392734 1.0352471 0.2217327 0.4610062 0.9487875 0.2032145 0.6642207 0.8484528 0.1817245 0.8459452 0.7192661 0.1540548 1.0000000
Fungsi Alternatif untuk Analisis Faktor dalam R (1) Fungsi factor.pa dalam Paket psych Fungsi lain untuk analisis faktor adalah factor.pa( ) yang terdapat pada Paket psych. Dalam fungsi ini menyertakan analisis faktor menggunakan principal axis. Dari sekian banyak metode analisis faktor pendekatan konvensional adalah principal axes melalui dekomposisi nilai eigen dari matriks korelasi dipeorleh nilai komunalitas dari tiap variabel dan ditaksir n faktor pertama. Nilai komunalitas ini dimasukkan ke dalam diagonal matriks dan prosedur diulang hingga jumlah diagonal tidak berubah. Metode lain adalah menggunakan Metode kuadrat terkecil untuk memperoleh nilai solusi residual minimum (disebut minres). Variasi dari minres digunakan dalam kuadrat terkecil diboboti (weighed least squares). Metode penaksiran lainnya adalah metode kemungkinan maksimum. Metode ini bisa diperoleh dari fungsi fa atau factanal yang telah dijelaskan sebelumnya. Bertho Tantular - 27
> fa(r,nfactors=1,n.obs = NA, rotate="oblimin", scores=FALSE, residuals=FALSE, SMC=TRUE, covar=FALSE,missing=FALSE,impute="median",min.err = 0.001, max.iter = 50,symmetric=TRUE,warnings=TRUE,fm="minres",alpha=.1, ...)
> factor.pa(r, nfactors=1, residuals = FALSE, rotate = "varimax",n.obs = NA, scores = FALSE,SMC=TRUE, missing=FALSE,impute="median",min.err = 0.001, digits = 2, max.iter = 50,symmetric=TRUE,warnings=TRUE,fm="pa") Bertho Tantular - 28
> factor.minres(r, nfactors=1, residuals = FALSE, rotate = "varimax",n.obs = NA, scores = FALSE,SMC=TRUE, missing=FALSE,impute="median",min.err = 0.001, digits = 2, max.iter = 50,symmetric=TRUE,warnings=TRUE,fm="minres")
> factor.wls(r,nfactors=1,residuals=FALSE,rotate="varimax",n.obs = NA, scores=FALSE,SMC=TRUE,missing=FALSE,impute="median", min.err = .001, digits=2, max.iter=50,symmetric=TRUE,warnings=TRUE,fm="wls") Keterangan: r Nfactors n.obs : adalah matriks korelasi atau matriks data mentah. : adalah banyak faktor yang akan diekstrak, nilai defaultnya adalah satu : banykanya pengamatan yang digunakan. Opsi ini berlaku apabila input adalah matriks korelasi. Dan digunakan untuk mencari statistik goodness of fit statistics. Rotate : berisi metode rotasi meliputi "none", "varimax", "quartimax", "bentlerT", dan "geominT" untuk rotasi ortogonal. "promax", "oblimin", "simplimax", "bentlerQ, dan "geominQ" or "cluster". Nilai default untuk opsi ini adalah oblimin residuals scores SMC covar : Matriks residual yang akan ditampilkan : bernilai TRUE untuk menampilkan nilai taksiran factor scores : benilai TRUE apabila menggunakan squared multiple correlations : bernilai TRUE bila yang digunakan matriks kovarians, bernilai FALSE bila yang digunakan matriks korelasi missing : Bernilai TRUE apabila akan mengganti data hilang dengan rata-rata atau median. Opsi ini digunakan apabila opsi scores bernilai TRUE. impute : digunakan untuk mengganti data hilang. Opsi ini bernilai "median" untuk mengganti dengan median atau "mean" untuk mengganti dengan rata-rata. Bertho Tantular - 29
: menampilkan nilai eigen dari common faktor : menampilkan nilai eigen dari matriks asli : menampilkan nilai taksiran komunalitas setiap item. Nilai ini merupakan jumlah kuadrat loading faktor untuk item tersebut.
: menampilkan rotasi yang digunakan : menampilkan banyak pengamatan yang digunakan : menampilkan nilai loading : How well does the factor model reproduce the correlation
matrix. This is just (sum(r^2ij - sum(r*^2ij))/sum(r^2ij (See VSS, ICLUST, and principal for this fit statistic. fit.off Dof : how well are the off diagonal elements reproduced? : derajat kebebasan dari model yang digunakan. Nilai ini merupakan Bertho Tantular - 30
dof =
n n1 q q1 n q 2 2
dengan n adalah banyaknya pengamatan q banyaknya faktor objective STATISTIC : menampilkan fungsi objektif. : Nilai statistik chi kuadrat yang didasarkan atas fungsi objektif. Apanila dituliskan dalam rumus matematika adalah sebagai berikut
2 =
n12 p5 2 q f 6 3
dengan n adalah banyak pengamatan p adalah banyak variabel q adalah banyak faktor f adalah fungsi objektif Phi : interfactor correlation.
communality.iterations: menampilkan taksiran komunalitas dari tiap iterasi (Hanya digunakan pada metode principal axis) Residual BIC R2 : menampilkan matriks korelasi residual setelah model faktor digunakan : menampilkan nilai Bayesian Information Criterion : Nilai R2 multiple antara faktor dengan penaksir factor score. Menggunakan nilai ini dapat diketahui korelasi minimum antara dua faktor dengan rumus 2R2 - 1 r.scores weights : nilai korelasi dari penaksir factor score : pembobot yang digunakan Bertho Tantular - 31
Syntax berikut adalah contoh analisis faktor menggunakan principal axis dengan fungsi factor.pa()
# Principal Axis Factor Analysis library(psych) fit <- factor.pa(dataku, nfactors=3, rotation="varimax") fit # print results
adalah data yang digunakan (raw data atau matriks kovarians/korelasi). banyak faktor yang diekstraksi rotasi yang digunakan dalam hal ini "varimax" or "promax".
(2) Paket FactoMineR Paket FactoMineR meliputi beragam fungsi tambahan dalam analisis faktor eksploratori. Dalam Paket ini menyertakan analisis faktor untuk variabel kualitatif maupun kuantitatif. Dalam paket ini juga menyertakan grafik untuk analisis faktor secara otomatis. Fungsi yang digunakan adalah PCA dan contoh penggunaan paket FactoMineR secara sederhana.
# PCA Variable Factor Map library(FactoMineR) result <- PCA(mydata) # grafik digambarkan secara otomatis
Paket nFactors, psych dan FactoMineR tidak disertakan secara default dalam software tetapi dapat diunduh secara gratis pada the Comprehensive R Archive Network (CRAN) di alamat http://CRAN.R-project.org/. Bertho Tantular - 32
2. Korelasi Kanonik dalam R Analisis Korelasi Kanonik dalam software R dapat dianalisis melalui Paket CCA yang dapat diunduh pada the Comprehensive R Archive Network (CRAN) di alamat http://CRAN.Rproject.org/. Setelah itu install paket tadi di software R kemudian loading dengan perintah
> library(CCA)
> cc( X, Y)
X Y
adalah set variabel yang pertama berukuran n x p adalah set variabel yang kedua berukuran n x q
Contoh Data berikut mengenai studi nutrisi dari tikus. Data diperoleh dari Pascal Martin dari the Toxicology and Pharmacology Laboratory (French National Institute for Agronomic Research). Data ini sudah disertakan dalam paket CCA dengan nama nutrimouse sehingga kita tinggal Bertho Tantular - 33
> data(nutrimouse) > X=as.matrix(nutrimouse$gene[,1:10]) gen > Y=as.matrix(nutrimouse$lipid) lipid > res.cc=cc(X,Y) > plot(res.cc$cor,type="b") > plt.cc(res.cc)
Bertho Tantular - 34
> res.cc > res.cc$cor > res.cc$xcoef > res.cc$ycoef > res.cc$scores
# Menampilkan seluruh output # Menampilkan nilai korelasi kanoniknya # Menampilakn penaksir koefisien bagi variabel X # Menampilakn penaksir koefisien bagi variabel Y # Menampilkan koordinat bagi variat kanonik
Bertho Tantular - 35
2. Analisis Diskriminan dalam R Analisis Diskriminan dalam software R dapat dianalisis melalui Paket MASS. Secara default paket MASS telah disertakan dalam installasi awal software R sehingga kita tinggal mengaktifkannya dengan perintah
> library(MASS)
Paket MASS telah meliputi fungsi analisis diskriminan linier dan kuadratik. Penggunaan analisis diskriminan menggunakan software R akan dijelaskan melalui ilustrasi berikut ini: Dalam rangka mengatur penangkapan Ikan Salmon, sangat diinginkan bisa mengidentifikasi Bertho Tantular - 36
Deskripsi Data Untuk menampilkan deskripsi dari data salmon lakukan perintah-perintah berikut:
> salmon<-read.csv("salmon.csv") > str(salmon) 'data.frame': 100 obs. of 4 variables: $ Ikan.Salmon: Factor w/ 2 levels "Alaska","Kanada": 1 1 1 1 1 1 1 1 1 1 ... $ AirTawar $ AirLaut $ JK : int 108 131 105 86 99 87 94 117 79 99 ... : int 368 355 469 506 402 423 440 489 432 403 ... : int 2 1 1 2 1 2 1 2 2 1 ...
> alaska<-c(mean(salmon$AirTawar[1:50]),sd(salmon$AirTawar[1:50]) ) > kanada<-c(mean(salmon$AirTawar[51:100]),sd(salmon$AirTawar[51:100])) > sdes<-data.frame(alaska,kanada) > row.names(sdes)=c("Rata-rata","Simp.Baku") > sdes alaska Rata-rata Simp.Baku 98.38000 16.14335 kanada 137.46000 18.05797
Bertho Tantular - 37
Secara deskriptif terlihat bahwa rata-rata diameter pertumbuhan ikan salmon di Alaska lebih kecil dibandingkan dengan di Kanada.
Pengujian Asumsi Normalitas Multivariat Secara umum ada dua pendekatan untuk menguji distribusi data Normal Multivariat yaitu menggunakan metode grafik (Q-Q Plot) dan menggunakan pengujian hipotesis (Uji Mshapiro). Baris-baris perintah berikut adalah pengujian distribusi normal multivariat untuk kedua metode
# Metode Grafik QQ-Plot > salmon2<-data.frame(salmon$AirTawar, salmon$AirLaut) > X <- as.matrix(salmon2) > center <- colMeans(X) > n <- nrow(X) > p <- ncol(X) > cov <- cov(X) > d <- mahalanobis(X,center,cov) + ylab="Jarak Mahalanobis") > abline(a=0,b=1) # Menghitung Jarak Mahalanobis > qqplot(qchisq(ppoints(n),df=p),d,main="QQ-Plot untuk Data Salmon", # membentuk matriks n x p # titik pusat
Bertho Tantular - 38
Dari grafik data terlihat agak melenceng untuk jarak data yang cukup besar yang mengindikasikan data tidak berdistribusi normal multivariat.
Fungsi Diskriminan Linier Fungsi lda() dalam paket MASS dapat digunakan untuk analisis diskriminan linier. Fungsi ini didasarkan pada variabel-variabel yang terpusat tetapi bukan nilai baku. Uraian berikut adalah penjelasan mengenai penggunaan fungsi lda.
Bertho Tantular - 39
atau > lda(x, grouping, prior = proportions, tol = 1.0e-4, method, CV = FALSE, nu, ...)
keterangan: formula : adalah model atau fungsi yang digunakan. Contoh G ~ x1 + x2 + ... dalam hal ini G adalah variabel respon berupa data nominal yang menjelaskan kelompok dan x1, x2, adalah variabelnya. data x : berupa data frame dari variabel-variabel yang digunakan dalam formula : berupa matriks atau data frame dari variabel-variabel penjelas. Opsi ini digunakan apabila formula tidak didefinisikan grouping : suatu faktor yang mendefinisikan kelompok dari tiap pengamatan Opsi ini digunakan apabila formula tidak didefinisikan prior tol : adalah fungsi peluang prior dari keanggotaan kelompok. : nilai toleransi yang digunakan apabila diperoleh matriks singular. Variabel dan kombinasi linier varians unit variabel yang nilainya kurang dari Nilai kuadrat tol berguna akan ditolak atau dikeluarkan. na.action method : suatu fungsi untuk penanganan data hilang : bernilai "moment" untuk penaksir baku bagi rata-rata dan varianas, "mle untuk penaksir kemungkinan maksimum, "mve" untuk digunakan dalam cov.mve, atau "t" untuk penaksir robust berdasarkan distribusi t. CV Nu : bernilai TRUE untuk menampilkan cross-validation. : derajat bebas untuk metode "t". Bertho Tantular - 40
Hasil yang dapat ditampilkan adalah sebagai berikut prior means scaling : prior probabilities yang digunakan. : rata-rata kelompok. : menampilkan matriks yang mentransformasikan pengamatan menjadi fungsi diskriminan. svd : menampilkan dekomposisi nilai singular yaitu ratio simpangan baku antar kelompok dengan simpangan baku dalam kelompok. Kuadrat dari nilai ini adalah nilai statistik F. n call : banyak pengamatan yang digunakan. : fungsi yang dihasilkan.
Untuk analisis diskriminan linier data Ikan salmon dapat menggunakan perintah-perintah berikut
> library(MASS) > fit <- lda(Ikan.Salmon ~ AirTawar + AirLaut, data=salmon, na.action="na.omit") Call: lda(Ikan.Salmon ~ AirTawar + AirLaut, data = salmon, na.action = "na.omit")
Group means: AirTawar AirLaut Alaska Kanada 98.38 137.46 429.66 366.62
Bertho Tantular - 41
Kemudian apabila ingin mengetahui akurasi dari analisis diskriminan yang telah dibuat lakukan prosedur berikut ini
# Menampilkan tabel keanggotaan sebenarnya dan hasil prediksi > fit <- lda(Ikan.Salmon ~ AirTawar + AirLaut, data=salmon, na.action="na.omit",CV=T) > ct <- table(salmon$Ikan.Salmon, fit$class) > ct Alaska Kanada Alaska Kanada 44 1 6 49
# Menentukan persentase ketepatan keanggotaan untuk tiap kategori > diag(prop.table(ct, 1)) Alaska Kanada 0.88 0.98
Secara umum kekeliruan dalam klasifikasi sebesar 7% cukup kecil. Artinya hanya sekitar 7 dari 100 ekor Ikan Salmon Alaska yang diklasifikasikan sebagai Ikan Salmon Kanada dan Ikan Salmon Kanada yang diklasifikasikan sebagai Ikan Salmon Alaska. Bertho Tantular - 42
Fungsi Diskriminan Kuadratik Untuk memperoleh fungsi diskriminan kuadratik dapat melalui fungsi qda( ) atau lda( ). Fungsi diskriminan kuadratik tidak mengasumiskan homogenitas matriks varians-kovarians. Kedua fungsi ini ada didalam paket MASS. Uraian berikut adalah penjelasan mengenai penggunaan fungsi qda.
atau
atau > lda(x, grouping, prior = proportions, tol = 1.0e-4, method, CV = FALSE, nu, ...)
keterangan: formula : adalah model atau fungsi yang digunakan. Contoh G ~ x1 + x2 + ... dalam hal ini G adalah variabel respon berupa data nominal yang menjelaskan kelompok dan x1, x2, adalah variabelnya. data x : berupa data frame dari variabel-variabel yang digunakan dalam formula : berupa matriks atau data frame dari variabel-variabel penjelas. Opsi ini digunakan apabila formula tidak didefinisikan grouping : suatu faktor yang mendefinisikan kelompok dari tiap pengamatan Opsi ini digunakan apabila formula tidak didefinisikan Bertho Tantular - 43
Hasil yang dapat ditampilkan adalah sebagai berikut prior means scaling : prior probabilities yang digunakan. : rata-rata kelompok. : menampilkan matriks yang mentransformasikan pengamatan menjadi fungsi diskriminan. svd : menampilkan dekomposisi nilai singular yaitu ratio simpangan baku antar kelompok dengan simpangan baku dalam kelompok. Kuadrat dari nilai ini adalah nilai statistik F. n call Ldet Lev class posterior : banyak pengamatan yang digunakan. : fungsi yang dihasilkan. : menampilkan vektor setengah log determinan matriks dispersi. : menampilkan tingkatan dari faktor kelompok : menampilkan mapping klasifikasi : menampilkan distribusi posterior
Berikut contoh penggunaan analisis diskriminan kuadratik dengan banyak kelompok adalah 3 dan banyak variabel adalah 4 dan ketiga kelompok mempunyai nilai peluang prior yang sama Bertho Tantular - 44
Menggambarkan Hasil Semua pengamatan dapat diplot kedalam sebuah gambar dua dimensi dengan mengambil dua fungsi diskriminan pertama
Menggambarkan scatterplot bagi kedua variabel untuk memperlihatkan keanggotaan kedua kategori. Fungsi partimat( ) dalam paket klaR dapat menggambarkan hasil dari fungsi Bertho Tantular - 45
# Grafik Eksplorasi untuk Analisis Diskriminan Linier > library(klaR) > partimat(Ikan.Salmon ~ AirTawar + AirLaut, data=salmon, method="lda")
Selain itu juga bisa dibuat scatterplot dengan menggunakan warna untuk masing-masing kategori. Untuk itu gunakan perintah-perintah berikut ini.
# Scatterplot > pairs(salmon[c("AirTawar","AirLaut")], main="Plot Analisis Diskriminan Ikan Salmon", pch=22, bg=c("red", "blue")[unclass(salmon$Ikan.Salmon)])
Bertho Tantular - 46
Dari Gambar diatas menunjukkan perbedaan kelompok Ikan Salmon dilihat dari dua variabel diameter ikan pada saat hidup di air tawar dan diameter ikan pada saat hidup di air laut. Warna merah adalah Ikan Salmon yang berasal dari Alaska dan warna biru menunjukkan Ikan Salmon yang berasal dari Kanada.
Bertho Tantular - 47
2. Analisis Klaster Dalam R Software R memiliki beragam fungsi untuk analisis klaster. Dalam bagian ini akan dijelaskan tiga pendekatan dalam analisis klaster yaitu: Analisis Klaster hierarki agglomerative dan Metode partitioning (K-means). Beberapa pendekatan dalam penentuan banyak klaster akan dijelaskan pula dalam bagain ini. Ilustrasi berikut merupakan penjelasan mengenai penggunaan software R untuk analisis klaster hierarki. Data berikut dikumpulkan pada 22 perusahaan publik di Amerika Serikat pada tahun 1975, pada tiap perusahaan diukur variabel-variabel berikut ini: X1 X2 X3 X4 : Fixed-charge coverage ratio (income/debt) : Rate of Return on capital : Cost per KW capacity in place : Annual load factor Bertho Tantular - 48
Sumber : Johnson & Wichern 2002 halaman 687 Dengan menggunakan data tersebut perusahaan-perusahaan akan dikelompokkan berdasarkan kedelapan variabel yang telah diukur. Hal pertama yang harus dilakukan adalah mempersiapkan data agar dapat dianalisis. Baris-baris berikut beberapa hal yang dapat dilakukan untuk mempersiapkan data
2. Analisis Klaster Hierarki Analisis Klaster Hierarki merupakan metode pengelompokkan yang didasarkan atas konsep kedekatan antar objek. Oleh karena itu matriks jarak merupakan input yang diperlukan dalam analisis ini. Beberapa metode dalam Analisis Klaster Hierarki adalah sebagai berikut 1. Metode Agglomerative / Metode Pautan (Linkage Method) a) Pautan Tunggal (Single Linkage) b) Pautan Lengkap (Complete Linkage) c) Pautan Rata-rata (Average Linkage) d) Metode Ward 2. Metode Divisive Dalam Analisis Klaster Hierarki baik metode agglomerative maupun metode Divisive menghasilkan suatu diagram dua dimensi yang disebut sebagai dendogram. Dalam R untuk semua metode agglomerative dalam Analisis Klaster Hierarki dapat menggunakan baris-baris perintah berikut ini
Bertho Tantular - 49
Dalam hal ini metode diisi dengan jarak yang digunakan yaitu "euclidean", "maximum", "manhattan", "canberra", "binary" atau "minkowski"
# Analisis Klaster Hierarki fit <- hclust(d, method=....) plot(fit) groups <- cutree(fit, k=k) Klaster # d adalah matriks jarak # Menggambarkan dendogram # Memotong Dendogram untuk k
Dalam hal ini metode diisi dengan metode klaster yang digunakan yaitu "ward", "single", "complete" atau "average". Apabila tidak ingin terlihat tahap dalam dendogramnya gunakan perintah berikut
Analisis Klaster untuk data pada ilustrasi diatas menggunakan software R adalah sebagai berikut Menggunakan metode Single Lingkage
> publik<-read.csv("public.csv") > str(publik) 'data.frame': $ x1 $ x2 $ x3 22 obs. of : num : num : int 8 variables:
1.06 0.89 1.43 1.02 1.49 1.32 1.22 1.1 1.34 1.12 ... 9.2 10.3 15.4 11.2 8.8 13.5 12.2 9.2 13 12.4 ... 151 202 113 168 192 111 175 245 168 197 ...
Bertho Tantular - 50
> publik1 <- scale(publik) > d <- dist(publik1, method ="euclidean") > fit <- hclust(d, method="single") > plot(fit)
Bertho Tantular - 51
Bertho Tantular - 52
Bertho Tantular - 53
Dari keempat metode yang digunakan terlihat menghasilkan Dendogram yang berbedabeda, sehingga kita harus memilih metode yang dapat mengelompokkan data dengan jelas. Katakan saja dalam kasus ini kita akan menggunaka metode Ward untuk mengelompokkan data kita. Selanjutnya kita akan mengelompokkan data dengan cara memotong dendogram menjadi 3 klaster menggunakan perintah berikut ini
Bertho Tantular - 54
Dari hasil dendogram tersebut terlihat bahwa setiap kotak merupakan sebuah klaster dengan anggotanya adalah setiap bilangan yang ada dalam kotak tersebut yang menyatakan objek atau pengamatan. Klaster 1 beranggotakan objek ke 2, 4, 5, 7, 10, 12, 13, 15, 17, 20, 21 Klaster 2 beranggotakan objek ke 1, 3, 6, 9, 14, 18, 22 Klaster 3 beranggotakan objek ke 8, 11, 16, 19 Salah satu kelebihan software R dalam Analisis Klaster adalah bisa menampilkan pvalue dari Analisis Klaster Hierarki berdasarkan metode bootstrap. Fungsi pvclust( ) dalam paket pvclust yang digunakan untuk hal tersebut. Klaster-klaster yang sangat didukung oleh data memiliki p-values yang tinggi. Tetapi perlu diperhatikan dalam paket pvclust yang dikelompokkan adalah kolom bukan baris, sehingga data kita harus ditranspos terlebih dahulu. Berikut perintah yang digunakan untuk fungsi pvclust Bertho Tantular - 55
> library(pvclust) > fit <- pvclust(mydata, method.hclust="ward",method.dist="euclidean") > plot(fit) > pvrect(fit, alpha=.95) # Menggambarkan dendogram dengan p values # Menambahkan kotak diantara kelompok yang sangat didukung oleh data
Dalam modul ini tidak akan dibahas lebih lanjut mengenai penggunaan fungsi pvclust() ini.
3. Analisis Klaster Non Hierarki Salah satu metode analisis klaster non hierarki atau disebut juga metode partioning yang paling populer adalah Analisis Klaster K-means. Pada metode ini banyaknya klaster secara pasti harus sudah diketahui. Sebuah cara sederhana yang dapat digunakan untuk menentukan banyak klaster yang akan digunakan adalah plot dari jumlah kuadrat dalam klaster (within sum of squares) dengan banyak klaster yang mana hasilnya mirip dengan screeplot dalam analisis faktor. Berikut adalah perintah-perintah yang digunakan dalam Analisis Klaster K-Means
# Menentukan Banyak Klaster > wss <- (nrow(dataku)-1)*sum(apply(dataku,2,var)) > for (i in 2:15) wss[i] <- sum(kmeans(dataku, centers=i)$withinss) > plot(1:15, wss, type="b", xlab="Banyak Klaster",ylab="Jumlah Kuadrat dalam Klaster")
Data sebelumnya digunakan untuk contoh penggunaan analisis klaster K-means. Berikut Bertho Tantular - 56
> wss <- (nrow(publik1)-1)*sum(apply(publik1,2,var)) > for (i in 2:15) wss[i] <- sum(kmeans(publik1, centers=i)$withinss) > plot(1:15, wss, type="b", xlab="Banyak Klaster",ylab="Jumlah Kuadrat dalam Klaster")
Dari gambar diatas banyak klaster yang dapat diambil adalah 6 yaitu titik pada saat kurva mulai melandai. Sehingga analisis klaster K-means adalah sebagai berikut
> fit <- kmeans(publik1, 6) > fit K-means clustering with 6 clusters of sizes 6, 1, 4, 3, 5, 3
Bertho Tantular - 57
-0.2997473 2 -1.91907572 -1.9323833 -0.7812761 -0.2203441 3 -0.13056613 -0.7146294 4 -0.60027572 -0.8331800 -0.7146294 5 -0.01133215 1.5650384 6 1.35082566 1.4394973 -0.9107532 0.1844205 -0.1413963 0.1880632 0.3313815 0.2189339 -0.3580408 0.1664686 -0.4018738 1.3389101 -0.4805802 0.9917178 1.8565214 0.2845910 -1.0422533 -0.7290215 -0.7507124 0.4747076 1.1034665 1.8468982 -0.9014253
Within cluster sum of squares by cluster: [1] 23.335588 0.000000 7.182296 9.534465 10.190007 10.152177
Available components:
Bertho Tantular - 58
0.04105853 -0.4469734
1.4394973 -0.9107532
0.1844205 -0.1413963
1 -0.2997473 2 -0.2203441
6 -0.2679860 -0.0904546
-0.29315791 -0.68463896 -0.417122002 -0.57771516 -0.52622751 -1.21451134 -0.19445367 1.71214073 -0.50994695 0.821002037
0.20660702 -0.004413989 -0.21906307 -0.94312798 -0.70170610 0.578232617 -1.29501935 -0.71864311 -1.58142837 0.67756716 -1.74485965 0.62337028
1.26965142 -0.14311204
Bertho Tantular - 59
0.748171211 -0.73462545
14 -0.13056613
0.83047922 -0.441398944 -0.06215278 -0.17346558 0.42941852 -1.558138274 -0.66737818 -1.71279038 0.47398082 -0.489952828 0.869555920 0.65515141 0.90172472
0.141247662 -0.60013092
x8 fit.cluster 3 1 6 5 1 6 1 4 6 5 4 1 5 3 1 4 2 3
-0.7146294 -0.07846664 1.3280197 -0.72581638 0.2143888 0.6253007 -0.7146294 1.68376323 0.24520824 0.98246767
2.2749037 -1.03150932
Bertho Tantular - 60
21 -0.7146294 22 0.8694658
Menggambarkan Hasil Dalam software R memungkinkan kita untuk menggambarkan hasil analisis klaster Kmeans. Untuk itu harus menggunakan paket Cluster dan paket fpc.Perintah-perintah berikut yang digunakan untuk menggambarkan klaster yang terbentuk
> library(cluster) > clusplot(publik1, fit$cluster, color=TRUE, shade=TRUE, labels=2, lines=0)
Bertho Tantular - 61
Dari gambar terlihat dengan jelas anggota dari masing-masing klaster dari warna dan bentuk titik masing-masing klaster.
Bertho Tantular - 62
Terlihat dari gambar keanggotaan tiap klaster dengan menggunakan angka dan warna untuk masing-masing klaster tetapi objek yang menjadi anggota klasternya tidak terlihat. Fungsi lain yang dapat digunakan untuk analisis klaster adalah metode validasi dari klaster atau lebih tepatnya perbandingan dari dua metode klaster. Fungsi cluster.stats() dalam paket fpc adalah suatu metode membandingkan kesamaan dua hasil klaster menggunakan kriteria validasi Hubert's gamma coefficient, the Dunn index dan the corrected rand index. Baris-basris berikut adalah metode validasi secara umum
dengan d adalah matriks jarak fit1 dan fit2 adalah hasil dari dua metode klaster yang digunakan untuk data yang sama. Bertho Tantular - 63
Classical MDS Untuk classical MDS dapat digunakan fungsi cmdscale( ) dengan perintah-perintah sebagai berikut:
> d <- dist(dataku) > fit <- cmdscale(d,eig=TRUE, k=2) > fit
# Menggambarkan hasil > x <- fit$points[,1] > y <- fit$points[,2] > plot(x, y, xlab="Nama Koordinat 1", ylab="Nama Koordinat 2", main="Classical MDS", type="n") > text(x, y, labels = row.names(dataku), cex=.7)
Bertho Tantular - 64
Data mengenai jarak udara antar 12 kota terpilih di amerika serikat sebagai ilustrasi penggunaan classical MDS dalam software R. Data yang digunakan sebenarnya antar kota. (Johnson & Wichern 2002, halaman 703) Hal pertama yang mesti dilakkukan adalah menginput data berupa matriks simetris kemudian diberi nama misalkan airline.csv (dalam format .csv). Kemudian lanjutkan dengan perintah-perintah berikut ini sehingga keluar output yang diinginkan telah berupa jarak
> airline<-read.csv("airline.csv") > names(airline)<c("Atlanta","Boston","Cincinati","Columbus","Dallas","Indianapolis","Little Rock","Los Angeles","Memphis","St.Louis","Spokane","Tampa") > d<-as.dist(airline) > d Atlanta Boston Cincinati Columbus Dallas Indianapolis Little Rock Boston Cincinati Columbus Dallas Indianapolis Little Rock Los Angeles 1701 Memphis 137 St.Louis 353 Spokane 1988 Tampa 467 1379 928 985 1077 975 2467 2747 2067 2131 1891 1959 558 1178 338 409 645 234 366 1355 502 586 464 436 1068 461 549 805 508 505 2197 867 769 1819 941 1494 3052 107 943 108 618 2186 1050 172 725 2245 882 325 1403 562 2080
Bertho Tantular - 65
> fit <- cmdscale(d,eig=TRUE, k=2) > fit $points [,1] Atlanta Boston Cincinati Columbus Dallas Indianapolis Little Rock Los Angeles Memphis St.Louis Spokane Tampa -539.553369 [,2] 295.5910
Output diatas adalah koordinat yang diperlukan untuk menggambarkan ke 12 kota dalam 2 dimensi. Untuk menampilkan gambarnya lanjutkan dengan perintah-perintah berikut ini Bertho Tantular - 66
> y <- fit$points[,1] > x <- fit$points[,2] > plot(x, y, main="Classical MDS", type="p", pch=20) > text(x, y, labels = names(airline), cex=0.7, pos=3)
Gambar diatas menunjukkan setiap titik-titik yang berdekatan menunjukkan lokasi kota yang juga berdekatan begitu pula sebaliknya. Dalam ilustrasi ini memperlihatkan kemiripan antar objek adalah kedekatan jarak sebenarnya secara geografis.
Nonmetric MDS Selain untuk data metrik multidimensional scalling juga dapat dilakukan untuk data Bertho Tantular - 67
5. Analisis Korespondensi Analisis Korespondensi adalah suatu prosedur grafis untuk menjelaskan asosiasi dalam tabel frekuensi terutama pada tabel frekuensi dua arah atau disebut juga tabel kontingensi. Dalam tabel kontingensi terdiri atas I baris dan J kolom. Analisis korespondensi menghasilkan titik-titik yang diplotkan dalam grafik yang terdiri atas dua set yaitu sebanyak I titik pada set pertama yang menyatakan baris dan sebanyak J titik pada set kedua yang menyatakan kolom. Posisi titik pada grafik menyatakan asosiasi antara keduanya. Analisis Korespondensi secara umum merupakan metode grafik dalam eksplorasi hubungan antara dua variabel dalam tabel kontingensi, tentunya variabel yang digunakan besifat kategori. Grafik yang dihasilkan dalam analisis korespondensi merupakan grafik mdua dimensi. Dengan titik-titik merupakan kategori dari masing-masing variabel. Dalam software R ada beberapa fungsi yang dapat digunakan untuk analisis korespondensi salah satunya adalah paket ca. Paket yang dibuat oleh Nenadic dan Greenacre ini menghasilkan nilai-nilai yang diperlukan dalma analisis korespondensi selain itu juga menghasilkan grafik yang sesuai. Paket ca dapat menganalisis multiple correspondence yaitu apabila variabel kategorinya lebih dari dua. Tetapi dalam modul ini hanya dibahas untuk analisis Bertho Tantular - 68
> situs<-read.csv(situs.csv) > tabel1<-xtabs(y~Situs+Tipe, data=situs) kontingensi > tabel1 # Membuat tabel
Tipe Situs P0 P1 P2 P3 P4 P5 P6 A 30 53 73 20 46 45 16 B 10 4 1 6 36 6 C 10 16 41 1 37 59 D 39 2 1 4 13 10 5
28 169
> prop.table(tabel1, 1)
Tipe Situs A B C D
Bertho Tantular - 69
> prop.table(tabel1, 2)
Tipe Situs A B C D
P0 0.106007067 0.109890110 0.030030030 0.527027027 P1 0.187279152 0.043956044 0.048048048 0.027027027 P2 0.257950530 0.010989011 0.123123123 0.013513514 P3 0.070671378 0.065934066 0.003003003 0.054054054 P4 0.162544170 0.395604396 0.111111111 0.175675676 P5 0.159010601 0.065934066 0.177177177 0.135135135 P6 0.056537102 0.307692308 0.507507508 0.067567568
> library(ca) Loading required package: rgl > fit <- ca(tabel1) > fit Principal inertias (eigenvalues): 1 Value 2 3 # Analisis Korespondensi # Menampilkan hasil
Percentage 55.34%
Bertho Tantular - 70
Columns: A Mass 0.362356 B 0.116517 0.727924 0.061739 C 0.426376 0.578220 0.142554 D 0.094750 1.355601 0.174118 1.766557
> summary(fit)
Principal inertias (eigenvalues): dim 1 2 3 value 0.283588 0.170107 0.058786 % cum% 55.3 88.5 scree plot ************************* ************
55.3 33.2
11.5 100.0
Rows: name 1 | 2 | 3 | 4 | 5 | P0 | P1 | P2 | P3 | P4 | mass 114 qlt 955 inr 329 | 97 | 112 | 50 | 86 | k=1 cor ctr k=2 cor ctr
919 572 340 | -752 383 379 | 378 277 137 49 48 | 10 | 69 | 611 723 211 | 586 886 300 | 221 75 70 11 | 18 |
13 | -135
Bertho Tantular - 71
Columns: name 1 | 2 | 3 | 4 | A | B | C | D | mass qlt inr 262 | 120 | k=1 cor ctr 420 478 226 | -8 0 k=2 cor ctr 440 522 412 | 88 | 11 |
> plot(fit)
Titik-titik baris (berbentuk bulat) pada gambar yang berdekatan memiliki profil kolom yang mirip begitupun sebaliknya titik-titik kolom (berbentuk segitiga) pada gambar yang berdekatan memiliki profil baris yang mirip. Tetapi kita tidak dapat menginterpretasikan jarak Bertho Tantular - 72
# Untuk menggambarkan dengan warna yang berbeda antar kelompok > plot(fit, mass = TRUE, contrib = "absolute", map ="rowgreen")
6. Analisis Biplot Analisis Biplot adalah representasi grafis mengenai informasi yang ada dalam matriks data berdimensi n x p. Dalam Biplot meliputi dua macam informasi yang ada dala matriks data yaitu informasi mengenai baris yang berarti unit-unit sampling dan informasi mengenai kolom yang berarti variabel-variabel. Apabila hanya dua variabel saja maka untuk merepresentasikan kedua informasi ini dapat menggunakan scatter plot. Tetapi untuk variabel lebih dari dua diperlukan suatu alat yang dapat memberikan informasi mengenai kedua hal tadi yaitu analisis biplot. Secara umum Biplot dapat menyajikan posisi relatif n objek pengamatan dengan p Bertho Tantular - 73
Data ini akan dibakukan karena ukuran dari variabel-variabel berbeda-beda. (Johnson & Wichern 2002, halaman 722) Dalam software R penggunaan Biplot bisa menggunakan fungsi biplot() atau fungsi bpca() yang terdapat pada paket bpca.
Penggunaan Fungsi biplot() Input data yang digunakan dalam biplot adalah nilai-nilai komponen utama. Sehingga penggunaan fungsi biplot() untuk data diatas adalah sebagai berikut
Bertho Tantular - 74
Penggunaan Fungsi bpca() Input data yang digunakan dalam biplot adalah nilai-nilai komponen utama. Sehingga penggunaan fungsi biplot() untuk data diatas adalah sebagai berikut
Bertho Tantular - 75
Secara umum hasil dari kedua fungsi ini menghasilkan gambar yang mirip, hanya saja fungsi bpca() memperlihatkan gambar yang sedikit lebih jelas dibandingkan dengan fungsi biplot().
Bertho Tantular - 76
DAFTAR PUSTAKA
Johnsom, Richard A, Wichern, Dean W. (2002) Applied Multivariate Statistical Analysis. Pearson Education International, New Jersey. Maindonald, John, Barun, W John. (2006) Data Analysis and Graphics Using R an ExampleBased Approach . Cambridge University Press. UK http://www.statmethods.net/advstats/ http://cran.r-project.org/packages/
Bertho Tantular - 77