SAS主成分分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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已经足以替代原有四个变量,它们是源数据集的主成分。

相关文档
最新文档