เราสามารถวิเคราะห์ 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)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น