注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

水墨点滴

一心一意 是世上最温柔的力量

 
 
 

日志

 
 

5.1 SAS多变量分析-主成分分析  

2012-02-10 17:09:51|  分类: SAS笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.主成分分析

用PRINCOMP过程计算主分量分析

SAS的PRINCOMP过程有如下功能:

完成主分量分析。

.主分量的个数可以由用户自己确定,主分量的名字可以用户自己规定,主分量得分是否标准化可自己规定。

·输入数据集可以是原始数据集、相关阵、协方差阵或叉积阵。输入为原始数据时,用户还可以规定从协方差阵出发还是从相关阵出发进行分析。由协方差阵出发时方差大的变量在分析中起到更大的作用。

·计算结果有:简单统计量,相关阵或协方差阵,从大到小排序的特征值和相应特征向量,每个主分量解释的方差比例,累计比例等。可生成两个输出数据集:一个包含原始数据及主分量得分,另一个包含有关统计量,类型为TYPE=CORR或COV。

·可揭示变量间的共线关系。若某特征值特别接近0说明变量线性相关,这时用这些变量作回归自变量可能得到错误的结果。

 

PRINCOMP过程主要使用PROC PRINCOMP语句与VAR语句。PROC PRINCOMP语句用来规定输入输出和一些运行选项,包括:

·DATA=输入数据集,可以是原始数据集,也可以是TYPE=CORR,COV的数据集

·OUT=输出包含原始数据和主分量得分的数据集

·OUTSTAT=统计量输出数据集

·COV要求从协方差阵出发计算主分量。缺省为从相关阵出发计算。

·N=要计算的主分量个数。缺省时全算。

·NOINT要求在模型中不使用截距项。这时统计量输出数据集类型TYPE=UCORR或UCOV。

·STD要求在OUT=的数据集中把主分量得分标准化为单位方差。不规定时方差为相应特征值。

用VAR语句指定原始变量,必须为数值型(区间变量)。

 

例1:在数据集TEMPERAT中存放有美国一些城市一月和七月的平均气温。我们希望对这两个气温进行主成分分析,希望用一个统一的温度来作为总的可比的

温度,所以进行主分量分析。程序如下:

proc princomp data=temperat cov out=prin;

var july january;

run;

结果包括观测数、变量数,分析变量的简单统计量、协方差阵,总的方差,协方差阵的特征值(包括特征值、特征值之间的差、比例、累计比例),特征向量。程序中的COV选项是要求用协方差阵而不是相关阵的特征值,结果中给了特征向量,我们就可以知道主分量得分的计算公式。

 

用SAS/INSIGHT和Analyst进行主分量分析

在SAS/INSIGHT中可进行主分量分析。例如,对于上面的WORK.CRIME数据集,在INSIGHT中打开它后,选"Analyze - Multivariate ',弹出选择变量的对话框,把各犯罪率变量都选为Y变量,然后按Output按钮,选中主分量分析(Principal Component Analysis)复选框,OK后就得到了多变量分析结果(包括原始变量的简单统计量、相关阵)和主分量分析的结果(特征值、累计贡献率、特征向量)。对话框的Method按钮可以选是按协方差阵计算还是按相关阵计算。另外还画了前两个主分量的散点图。

在Analyst中也可以进行主分量分析。选"Statistics—Multivariate -Principal Components" 可以打开主分量分析的对话框,可以选要分析的变量,其Statistics按钮可以选按协方差阵分析还是按相关阵分析。此界面调用PROC PRINCOMP,所以得到的结果与前面的例子是一样的。

  评论这张
 
阅读(3415)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017