Analisis Faktor (PCA) dengan R

Principal Component Analysis (PCA) adalah salah satu metode statistik multivariat yang memungkinkan kita untuk melihat pola maupun variasi dalam data. PCA digunakan untuk menganalisis satu kelompok data hasil pengamatan yang dihasilkan dari indikator penelitian yang banyak untuk menghasilkan beberapa gagasan atau komponen utama, yang tidak berkorelasi satu sama lain dan menjelaskan variasi dalam data.

PCA memungkinkan untuk digunakan dalam proses reduksi data kompleks menjadi kelompok dimensi untuk mengungkapkan struktur/komponen dominan dalam pengamatan dan kelompok data.

Contoh #1

Kita lihat langsung contohnya pada pemrograman R, data yang akan saya gunakan adalah data hasil penelitian saya yang sudah dipublikasikan dengan judul Knowledge management key factors: an empirical research on small and medium-sized enterprises in Indonesia, data penelitian ini dapat didownload di sini.

Kita akan menggunakan perintah principal() dari package psych untuk melakukan proses PCA, langkah awal seperti biasa adalah dengan melakukan import data file kita ke RStudio, data di contoh kita kali ini diberi nama datapca,

Tahap awal sebelum melakukan proses PCA, untuk bisa melanjutkan Analisis Faktor maka nilai KMO minimal 0.5 dan Signifikansi Bartlett’ test harus terpenuhi (kurang dari 0.05).

dari hasil pengujian kasus kita terlihat nilai KMO 0.97,

> library(psych)
> library(GPArotation)
> KMO(datapca)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = datapca)
Overall MSA = 0.97
MSA for each item =
var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11 var12 var13 var14
0.92 0.94 0.96 0.96 0.95 0.97 0.97 0.98 0.95 0.97 0.97 0.95 0.97 0.98
var15 var16 var17 var18 var19 var20 var21 var22 var23 var24 var25 var26 var27 var28
0.98 0.98 0.93 0.97 0.96 0.97 0.98 0.96 0.97 0.98 0.97 0.98 0.98 0.98
var29 var30 var31
0.98 0.97 0.98

dan Bartlett’ test p-value < 0.05, dinyatakan data yang ada dapat dilakukan proses Analisis Faktor.

#bartlett test code designed by Professor Shigenobu Aoki
uji_Bartlett <- function(x)
{
  method <- "Bartlett's test of sphericity"
  data.name <- deparse(substitute(x))
  x <- subset(x, complete.cases(x)) 
  n <- nrow(x)
  p <- ncol(x)
  chisq <- (1-n+(2*p+5)/6)*log(det(cor(x)))
  df <- p*(p-1)/2
  p.value <- pchisq(chisq, df, lower.tail=FALSE)
  names(chisq) <- "Khi-squared"
  names(df) <- "df"
  return(structure(list(statistic=chisq, parameter=df, p.value=p.value,
                        method=method, data.name=data.name), class="htest"))
}

uji_Bartlett(datapca)

	Bartlett's test of sphericity

data:  datapca
Khi-squared = 11039, df = 465, p-value < 2.2e-16

data kita berada pada kolom 1 sampai 31, lakukan proses PCA dengan perintah di bawah ini,

> pcaKu <- principal(datapca[1:31])
> pcaKu[["values"]]
    [1] 16.7152235  2.2354955  1.3553517  1.0842009  1.0137432
    [6]  0.7397658  0.6195730  0.5542447  0.5267381  0.4924132
   [11]  0.4473847  0.4109380  0.3939930  0.3789867  0.3564000
   [16]  0.3380990  0.3244409  0.3017411  0.2854721  0.2630089
   [21]  0.2604172  0.2459034  0.2260510  0.2106246  0.2048379
   [26]  0.2032162  0.1879858  0.1625772  0.1570976  0.1553930
   [31]  0.1486821 

dari langkah di atas kita lihat bahwa ada 5 faktor utama dengan nilai eigenvalues di atas 1, untuk menentukan berapa faktor yang akan kita ekstrak, maka dapat kita lengkapi analisis dengan perintah scree untuk memvisualisasikan eigenvalues.

> scree(datapca, factors = TRUE, pc = TRUE, main = "Scree plot", hline = NULL, add = FALSE)

yang akan menghasilkan grafik di bawah ini,

pada contoh ini kita akan memutuskan bahwa ada (5) lima faktor utama dari data kita, kita akan terapkan jenis rotation oblimin pada contoh ini. Langkah selanjutnya adalah dengan perintah di bawah ini,

> pcaSayaRotation <- principal(datapca[1:31],nfactors=5,rotate="oblimin")
> pcaSayaRotation

dari hasil di atas kita dapat tentukan indikator pada setiap komponen utama yang kita dapatkan, tahapan yang cukup menantang selanjutnya adalah memberikan nama untuk faktor utama yang didapat, tentu perlu analisis mendalam terhadap setiap kelompok faktor yang didapat, pemberian nama harus mampu menggambarkan karakter khusus dari setiap komponen/faktor nya.

Pada hasil penelitian kami di atas, 5 komponen utama itu kami namakan sebagai 1. knowledge-preneur leadership; dari tabel hasil di atas var4 pada kolom TC1 bernilai 0.85, dan seterusnya kita lihat nilai-nilai di kolom TC1 yang memiliki nilai terbesar (var4, var8, var14, var15, dll) dapat dikelompokkan ke dalam komponen 1. knowledge-preneur leadership.

Demikian pula untuk component 2. techno-preneur Harmony; component 3. organisational K-partnership; component 4. knowledge-preneur employee; dan component 5. socialisation palisade. Penjelasan detail terkait nama setiap komponen dapat dibaca lebih jelas di artikel penelitian kami di sini.

Dari tabel di atas dapat kita lihat bahwa setiap komponen memiliki persentase variansinya masing-masing di mana total variansi dari 5 komponen di atas adalah sekitar 72%.

Contoh #2

Video di bawah ini merupakan contoh ke #2 untuk PCA dengan analisis paralel untuk menentukan jumlah faktor/component yang kita pertahankan.

2 thoughts on “Analisis Faktor (PCA) dengan R

Leave a Reply

Your email address will not be published. Required fields are marked *