SAS主成分分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS主成分分析
分类:数据之美2013-07-28 20:18 2343人阅读评论(0) 收藏举报
目录(?)[-]
1. 主成分分析流程
2. SAS主成分分析示例
3. SAS主成分分析输出结果详解
4. 特征值和特征向量隐藏的秘密
5. 总结
6. 参考文献
同事讲主成分分析,举了这么个例子:就像你选女人,有身材、相貌两个指标,如果身材、相貌都很突出,那当然很好选择;但如果两个女人,一个身材突出,一个相貌出众,看着都很喜欢,那可如何是好!这个时候通过主成分分析,汇总出一个指标,这个指标可以一定程度上代替原来的身材、相貌,这时就可以排序做出选择了。
这例子当然有很多缺陷,但至少指出了主成分分析的目的之一:减少决策变量数,也就是降维。主成分分析的另一个目的是防范多重共线性。实际问题往往涉及很多变量,但某些变量之间会有一定的相关性,我们希望构造较少的几个互不相关的新指标来代替原始变量,去除多重共线性,减少所需分析的变量,同时尽可能减少这一过程的信息损失。主成分分析正是基于这样的目的而产生的有效方法。
主成分分析流程
主成分分析包含以下流程:
1、原始数据标准化。
2、计算标准化变量间的相关系数矩阵。
3、计算相关系数矩阵的特征值和特征向量。
4、计算主成分变量值。
5、统计结果分析,提取所需的主成分。
SAS主成分分析示例
我们从实战入手,先来个简单的例子,完整体验使用SAS进行主成分分析的过程。准备好图1所示的数据集,该数据集包含5个变量和22个观测。其中变量num用于标识每条观测。
图1
可以直接复制下面的程序完成输入:
data Practice.PCA_Demo;
input num var1 var2 var3 var4;
cards;
1 21 10.7 99.7 9.5
2 9.5 17.9 139.6 18.7
3 21.2 8.
4 90 6.8
4 12 22.7 42.
5 24.1
5 6.8 21.2 55.2 22.4
6 8.2 22.4 55.6 22.6
7 3.6 29.2 68.3 26.7
8 19.5 15.2 18.8 17.4
9 24.8 5.4 43.7 2.9
10 8.4 18.6 146.2 19.7
11 28.9 4.4 4.9 1.1
12 19.5 15.1 10.2 18.5
13 28.3 4.7 13.3 1.8
14 24.7 12.1 116.8 12.6
15 12.8 23.6 90 23.7
16 23.1 6.8 100.1 3.7
17 15.1 13.7 100.9 14.2
18 2.9 6.2 80.7 2.7
19 18.4 11.8 99.3 13.8
20 22.9 12.3 47.6 13.3
21 5.8 29.4 83.5 27.6
22 18.8 8.6 61.1 8.9
;
run;
我们的目的是,化简var1-var4四个变量,找出可以替代这四个变量的若干个彼此独立的新变量,也就是找出主成分。主成分分析代码如下:proc princomp
data= Practice.PCA_Demo
out= Work.PCA_Demo_out
prefix= comp
outstat= Work.PCA_Demo_stat
;
var var1 var2 var3 var4;
run;
这段代码翻译过来的意思是:对源数据Practice.PCA_Demo的四个变量var1、var2、var3和var4(以下简称原始变量)做主成分分析,输出结果(包含源数据的所有变量及新增的主成分变量)放在
Work.PCA_Demo_out数据集,主成分变量名的前缀使用comp。相关变量的统计结果(均值、方差、特征值、特征向量等)输出到Work.PCA_Demo_stat。
程序运行后,输出界面显示如图2。
图2
输出结果Work.PCA_Demo_out存放了原始数据集的所有变量以及新变量comp1、comp2、comp3和comp4,分别代表第1至第4主成分,它们对原始变量的解释力度依次减少。
图3
一同输出的还有统计结果Work.PCA_Demo_stat:
图4
现在,我先假设你是个急性子,你可能会对我说:“不必告诉我这些输出结果的含义,我给了你四个变量,你只要返回给我较少的可用的字段
就可以了。”那么我会回答你,新的变量comp1和comp2就可以替代原来的四个变量var1、var2、var3和var4,因为这两个变量合起来解释了原来四个变量91.27%的信息,能够满足要求。
何以见得?请看图2的第4部分输出Eigenvalues of the Correlation Matrix,第四列Cumulative显示,第一个特征值分量占比0.6749(67.49%),第1、2个特征值合起来占比91.27%>85%,因此新变量comp1和comp2已经足以替代原有四个变量,它们是源数据集的主成分。
没错,在SAS上进行主成分分析,就是这么简单,结果的使用也不复杂,大多数情况下到此也就足够了。不过出于对科学本质的好奇,我们还是要详细研究下每项输出结果的含义,以便更好地理解主成分分析。
SAS主成分分析输出结果详解
作为细节强迫症重度患者,图2~图4只要有个点没搞清楚都觉得寝食难安。
我们先来看图2。
第1部分很简单,指出观测数为22,变量数为4,也就是我们在var 语句中指定4个原始变量。