【SAS】主成分分析 因子分析
2015-11-13 00:59
519 查看
一、主成分分析
1.分析流程:
①原始数据的标准化;②计算标准化变量之间的相关系数矩阵 ;
③计算相关系数矩阵的特征值和特征变量
④计算主成分变量
⑤统计结果分析,提取所需的主成分
2.源码:
ps:数据集airdataproc princomp data=airdata out=prin prefix=comp outstat=prin_stat ; var x1-x10; run;
这段代码的意思是对airdata数据集的x1、X2、X3、X4、X5、X6、X7、X8、X9、X10变量做主成分分析,含原变量和新增主成分(以compi表示)变量的输出表comp,相关变量的统计结果输出到prin_stat .
3.输出结果分析 :
【解释】 EIgvalue列→表示按大小顺序排列的变量标准化变量的相关系数矩阵按从大到小顺序排列的特征值,cumulative→表示前n个特征值的累计方差贡献率,可理解为对矩阵的代表程度,代表程度越高,表明对矩阵的解释程度越好,一般经验值85%以上,本示例达到85%择选前四个特征值,故需要选取4个主成分
【解释】本图片的每一列是第compi个主成分变量 对Xj个原始自变量的 解释力度。
【解释】本图片展示的是输出表 comp的数据 ,含有原始变量x1-x10,以及主成分解释变量comp1-comp10.comp输出表中有用的数据为comp1-comp4(即我们选取的4个主成分表示的原始数据 x1-x10,解释力度87.18%)
参考链接:
①SAS主成分分析
②主成分分析与因子分析
二、因子分析
1.分析流程:
①原始数据的标准化;②计算标准化变量之间的相关系数矩阵 ;
③计算相关系数矩阵的特征值和特征变量
④计算主成分变量
⑤统计结果分析,提取所需的主成分
2.源码:
ps:数据集airdataproc factor data=airdata simple corr; title '主成分分析'; run; proc factor data=airdata priors=smc rotate=promax reorder score outstat=outf ; title '主因子分析及Promax斜交/varimax正交旋转'; run; proc score data=airdata score=outf out=outs; title '正交旋转后的主因子得分'; run;
这段代码的意思是先对airdata数据集的x1、X2、X3、X4、X5、X6、X7、X8、X9、X10变量做简单的因子分析(即利用factor过程进行主成分分析,并用simple选项计算变量相关矩阵的特征值、特征值累计占比等信息,利用corr输出相关阵);其他详细见下面的补充。
3.输出结果分析 :
【同上主成分分析图】
【解释】选取特征值大于1的个数作为factor的个数
【解释】factor priors=smc的输出结果,该方法的特征因子选取数量默认情况下是特征值贡献累计率第一次达到1时的特征值的个数,如下
【解释】正交旋转结果图
【解释】正交旋转后各种因子得分矩阵图
补充:
Factor过程 proc factor <options>; var 变量表; run; proc … <options> data=数据集 可以使原始数据集、相关系数矩阵(type=corr、cov)等 N=n 确定因子个数(缺省为特征值大于1个数) out=保存原变量和因子得分(需要与N=选项结合,使用原始数据集) method=prin(在priors=one或者priors语句不出现时产生主成分分析) prinit(主因子迭代法,maxiter=项配合指定最大迭代次数, priors=one|smc|max|random(此处为选项,指定先验共同度) proportion=0.70(指定因子对原始指标X的指标贡献率>=此值) nfactors=k(指定保留的特征值个数) mineigen=0(保留大于等于此值的特征值) outstat=数据集 包含均值、标准差、观测数、相关阵、特征值与特征向量、因子载荷、 因子得分系数等 rotate=varimax方差最大|equamax均方最大|promax斜交旋转|none (缺省为none不旋转) score (因子得分:输出各因子的变准化指标得分) corr (输出相关阵) var 指定要分析的数值变量; priors var指定的变量的先验共同度(空格分隔); run;
相关文章推荐
- 从源码安装Mysql/Percona 5.5
- 浅析Ruby的源代码布局及其编程风格
- asp.net 抓取网页源码三种实现方法
- JS小游戏之仙剑翻牌源码详解
- JS小游戏之宇宙战机源码详解
- jQuery源码分析之jQuery中的循环技巧详解
- 本人自用的global.js库源码分享
- java中原码、反码与补码的问题分析
- PHP网页游戏学习之Xnova(ogame)源码解读(六)
- C#获取网页HTML源码实例
- PHP网页游戏学习之Xnova(ogame)源码解读(八)
- PHP网页游戏学习之Xnova(ogame)源码解读(四)
- JS小游戏之极速快跑源码详解
- JS小游戏之象棋暗棋源码详解
- android源码探索之定制android关机界面的方法
- 基于Android设计模式之--SDK源码之策略模式的详解
- Android游戏源码分享之2048
- C语言借助EasyX实现的生命游戏源码
- C实现的非阻塞方式命令行端口扫描器源码
- PHP网页游戏学习之Xnova(ogame)源码解读(七)