作者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