作者anovachen (囧)
看板Statistics
標題主成分迴歸 該挑選哪些主成分?
時間Tue Jun 11 18:50:05 2013
考慮原始的迴歸模型: Y = b0 + ΣbiXi i=1,2,...7
已知X1,X2,X3是同一種屬性的資料
(例如:同一個人在研究開始後1,3,6個月時測得的肺活量),
X4,X5,X6是另一種屬性的資料
(例如:同一個人在研究開始後1,3,6個月時測得的血糖值)
因為X1~X3之間高度相關,X4~X6之間也高度相關,
假定肺活量和血糖值相關性很低,且這兩群變數跟X7也沒相關性,
這樣我可以用主成分分析先針對X1~X3取一個主成分PC1,
再對X4~X6取一個主成分PC2,
之後把迴規模型改成如下形式嗎?
Y = b0 + b1PC1 + b2PC2 + b3X7
這樣可以確保PC1,PC2,X7之間沒有共線性,又不會浪費掉太多資訊?
SAS code:
proc princomp; var X1 X2 X3; run;
proc princomp; var X4 X5 X6; run;
(可是...接下來怎麼把變數乘上特徵向量?)
proc glm; model Y = PC1 PC2 X7; run;
但是...因為三個變數作主成分分析,會產生三個特徵向量,
我可以只取第一個就好嗎?
假設第一個特徵向量的每一個元素都差不多大...
不像第二或第三個向量,會有的是正值,有的是負值。
而且我看陡坡圖,第一個主成分到第二個主成分之間最陡,
感覺只挑第一個就夠了?
但是Bartlett檢定是不是會比較客觀?
SAS裡面要怎麼做Bartlett檢定?
謝謝指教!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.232.36
1F:→ andrew43:是可行的做法, 但在sas的實做我不會. 06/13 11:15
謝謝回覆!
---
假設第i個人的三個變數的向量為xi=[xi1,xi2,xi3]
做完PCA得到三個eigenvector(假定為v1,v2,v3),
那要怎麼讓SAS自動產生x乘上v1的值?
有人用SAS試過嗎...
還是就只能自己用陣列元素相乘的方法,把主成分的值算出?
(好久沒用SAS的array了...
總覺得矩陣運算直接用R來做比較快....="=)
※ 編輯: anovachen 來自: 111.255.4.54 (06/13 18:44)
2F:→ andrew43:我記得sas可以直接提取第n主成份的值(不用自己求積)。 06/13 23:16
3F:→ andrew43:關鍵字如 "prin1", "prin2", ... 06/13 23:17
4F:→ andrew43:應該很好找到解法. 幾年前有練習過所有以印象. 06/13 23:17