sas:因子分析实例

1.因子分析

主成分分析可以认为是从杂乱繁多、相关性较大的原始分析变量出发创建综合指标(主成分),这些主成分间是相互独立的,每一个主成分均可以用原始变量的线性关系表示,如comp1=….,comp2=…..,最后用80%或者85%去进行筛选,最后得到主成份表达式。
而因子分析可以看成是主成分分析的发展或是深度分析,通多各个原始变量在各个因子上的载荷量进行现实意义解释,往往在某因子上载荷量较大的几个变量抽象出某一综合指标来解释现实意义。
但在实际应用过程中,很多变量应该上升到更高维度去看是更好解释的,比如高血压和血脂、血糖、IBM指数等很多东西都有关系,其实说起来就是高血压和肥胖有关系,因为这些东西我们都知道是用来描述肥胖的。而对于年龄这种变量就自己一个就可以影响了。这样就可以把肥胖这种变量定义为公共因子,年龄叫做特殊因子。这两个的作用在于可以解释原始变量,向前面提到的血脂血糖等等。

从上面这个例子可以对比前面的主成分分析得到:

  • 主成分分析是建造新的变量(命名为主成分变量),用原始变量的线性关系解释主成份变量。
  • 因子分析是用公共因子和特殊因子的线性关系去解释原始变量。

2因子分析的过程

1.提取因子

可以利用前面的主成分分析法发现公共因子,也可以用极大似然法去求解,求出公共因子后应该对其进行分析,若发现解释不通或者意义不大,可以通过旋转使因子结构发生变化。
值得注意的一点,主成分分析不考虑公共因子的分布问题(是否为正态分布),极大似然法是在假定公共因子及特殊因子正态分布的前提下对因子载荷进行极大似然估计的。

2.因子旋转

因子分析的目的在于发现公共因子及挖掘其现实意义,而发现的手段在于分析多个原始研究变量在某单个因子上高额载荷,而在其他因子上较小载荷。载荷可以简单理解为该公共因子能解释该原始变量的程度。当不存在这样规律时,可以进行因子转换改变因子结构进而再分析问题。
因子旋转的方法主要为两种,一正交旋转,通过方差最大正交旋转(sas实现:ROTATE= VARIMAX ),旋转后的公共因子间仍然不相关;二位斜交旋转(sas实现:ROTATE= PROMAX),旋转后公共因子彼此相关。

3.因子得分

即是每条观测记录在每个因子上的得分,在OUT=选项产生的数据集原始变量后缀的内容。

程序实例

Optiondescription
数据集选项
DATA=指定待分析数据集,可以为原始数据集或非原始数据集(相关系数、协方差,得分系数矩阵)。
OUT=输出数据集(包括data=指定分析数据集及公共因子等)
OUTSTAT=指定分析统计量结果的数据集名称。
TARGET=Specifies input data set containing the target pattern for rotation
因子提取和共同度
HEYWOOD公因子取值范围0~1,任何大于1的情况下允许迭代继续
METHOD=指定因子载荷或提取因子的方法,默认为主成分法(principal),系统提供8中分析方法。常用方法为主成分法和极大似然法(ML)。
PRIORS=指定先验公因子方差的估计方法。共6种,默认设置随着method=选项有所不同。主要两种MAX(最大绝对系数)和SMC(多元相关系数)。
RANDOM=设置假随机种子数,为正整数,当设定priors=random时发挥作用。若不设定可能每次运行结果不同。
ULTRAHEYWOOD允许共用度大于1.
因子数相关选项
MINEIGEN=指定被保留特征值的最小值,一般为1 。
NFACTORS=指定被保留因子数,默认为原始变量的个数。
PROPORTION=指定被保留因子所能解释方差所占总方差比例,默认为1.
数据分析选项
ALPHA=设置置信区间1-p,默认p为0.05.
COVARIANCE要求用协方差矩阵做因子分析,前提Method=principal,prinit,ULS及IMAGE。
旋转方法及属性
HKPOWER=设置正交旋转的效能。
POWER=设置斜交旋转的效能。
ROTATE=设置旋转方法(包括正交旋转:VARIMAX 和斜交旋转:PROMAX)
ODS Graphics
PLOTS=Specifies ODS Graphics selection
Control Display Output
PLOT输出因子模式图。PLOT=loading输出旋转后模式图,PLOT=initloading输出旋转前模式图。PLOT=all,全部。
SCORE输出因子得分。
SCREE输出特征值的陡坡图。
PARPREFIX=设置残差变量前缀
PREFIX=设置因子变量名前缀。

使用文件:某高中高一成绩单

/*因子分析data=指定分析数据集,out=命名分析数据集及各个观测在因子上得分的数据集;outstat分析统计量输出数据集,nfactor=设置因子数;corr输出各变量间的相关系数矩阵;
priors=SMC法规定先验公因子方差的估计方法,method指定用主成分法计算因子载荷;
heywood 当大于1时允许迭代继续;rotate=用正交旋转因子结构,plot输出旋转前后因子模式图;var指定分析变量。*/
ods pdf file='d:\mysas\factor.pdf';
title factor_result &sysdate9&systime;
proc factor data=fac out=factor outstat=param nfactors=1
                  corr priors=SMC Method=principal heywood rotate=VARIMAX plot=all;
var x1-x6 ;
run;
ods pdf close;

生成文件:factor2.pdf

结果解释

第一个表为factor过程,没什么要解释的(读取与使用的不一致原因是有一部分人的成绩某科目缺失了)
第二个表为相关系数矩阵,和主成分分析类似
在没进行旋转前的因子模式表可以大致看出语文这一学科对公共因子1的影响较弱,为使结果更加明显,进行旋转
旋转后结果更明显理科性质可归为一个公共因子,语文对应文科公共因子,而英语两边都差不多,所以可看为特殊因子

这个很重要

  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值