Blogroll

halo
Searching...
Rabu, 22 Februari 2017

[R] Principal Components Analysis

12.56



Ketika data yang kita miliki memiliki variabel yang sangat banyak, sehingga tahapan analisis menjadi kurang efektif dan efisien. Atau ketika antar variabel kita saling berkorelasi sehingga bisa dikatakan mengalami multikolinieritas. Hal itu bisa diselesaikan dengan reduksi variabel. Kali ini akan dipaparkan salah satu metode reduksi variabel yang cukup terkenal, yaitu Principal Components Analyisis (PCA).

Dalam PCA, reduksi variabel didasarkan pada kandungan variasi pada variabel tersebut. Diharapkan saat jumlah variabel sudah direduksi, tetap memiliki proporsi variasi yang tinggi. Total variasi biasanya diharapkan minimal 80%.

Nah, disini akan dipaparkan bagaimana penerapan PCA pada R. Pertama, tentu saja kita import dulu dataset-nya yang memiliki 40 variabel. Tentu saja itu jumlah variabel yang sangat banyak.

 ## Set directori project  
 setwd("D:/data/blog/PCA")  
 ## Read data  
 pcadata <- read.csv("pcadata.csv", header=F)  

Lalu terapkan PCA pada dataset tersebut dengan fungsi “printcomp”.

 ## Menerapkan PCA pada data mentah  
 pc <- princomp(pcadata)  

Setelah itu kita bisa mengevaluasi berapa reduksi variabel yang perlu dilakukan, dengan tetap mempertahankan variasi data. Hal itu bisa dilakukan dengan memanfaatkan plot (bar atau line) dan melihat summary dari hasil PCA.

 ## Melihat plot komponen berdasarkan peran dalam membentuk variasi  
 plot(pc, main="Komponen berdasarkan variasi")  
 plot(pc, type='l',main="Komponen berdasarkan variasi")  




 summary(pc) # Melihat persentase variasi tiap komponen, trlihat 12 komponen punya variasi > 80%  




Terlihat dari hasil summary, dengan 12 komponen sudah memiliki variasi lebih besar dari 80%. Sehingga dapat direduksi variabel hingga cukup berjumlah 12. Berikut script untuk memperoleh 12 komponen tersebut.
      
 # Mendapatkan data komponen dari hasil transformasi PCA  
 pckomp <- prcomp(pcadata)  
 # Ambil 12 data komponen  
 datareduksi <- data.frame(pckomp$x[,1:12])  
 ## Lihat hasil reduksi data dari 40 var jadi 12 var hasil transformasi PCA  
 View(datareduksi)  

Demikian, semoga bermanfaat....

0 komentar: