วันพุธที่ 9 ธันวาคม พ.ศ. 2558

วิเคราะห์ PCA ด้วย R

    เราสามารถวิเคราะห์ PCA (Principal Component Analysis) บน R ได้หลายวิธี แต่วิธีที่นิยมคือการใช้ ฟังก์ชั่น prcomp

   ในตัวอย่างนี้ผมจะลองวิเคราะห์ PCA เพื่อแบ่งกลุ่ม NIR spectra ของตัวอย่าง 3 กลุ่ม กลุ่มละ 100 ตัวอย่าง ในแต่เส้น NIR spectrum นั้นได้มากจากการวัดการดูดกลืนแสงในช่วง12500 - 4000 cm-1 จึงมีข้อมูลจำนวน 558 ค่า ข้อมูลซึ่งเดิมมาจากโปรแกรม OPUS ถูกแปลงเป็น csv ตามโพสต์ก่อนหน้านี้ จากนั้นแปลง csv เป็น matrix อีกที
    จาก matrix เราจะแปลงข้อมูลเป็น data.frame เพื่อให้ง่ายต่อการวิเคราะห์


> source("D:\\csv2matrix.R")
> data<-csv2matrix()
> data.df<-as.data.frame(data)

สร้างข้อมูลจัดกลุ่มตัวอย่าง 3 กลุ่ม คือ good, black, unpeel

> groups<-rep(c("good","black","unpeel"),each=100)

วิเคราะห์ PCA ด้วยฟังก์ชั่น prcomp()

> data.pca<-prcomp(data.df)

แสดง PC ต่างๆ 
> summary(data.pca)


จากนั้นเราจะแสดง biplot ด้วย ggbiplot ซึ่งจะต้องติดตั้งจาก github

> library(devtools)

> install_github("vqv/ggbiplot")

> library(ggbiplot)
> ggbiplot(data.pca,obs.scale=0,groups=groups,ellipse=TRUE,var.axes=FALSE) 





ไม่มีความคิดเห็น:

แสดงความคิดเห็น