您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页因子分析过程

因子分析过程

来源:五一七教育网
主要过程:

1确认待分析的变量是否适合做因子分析: (1)计算变量之间的相关系数矩阵:

如果相关系数矩阵在进行统计检验中大部分相关系数都小于0.3,那么表明这些变量不适合于进行因子分析。

(2)KMO(Kaiser-Meyer-Olkin)检验:

KMA值在0-1之间,其值越接近1,表明所有变量之间简单相关系数平方和远大于偏相关系数平方和,就越适合因子分析。一般认为,大于0.7则

适合做因子分析。

2对样本数据进行标准化处理; 3计算相关系数矩阵

4计算相关系数矩阵的特征值和特征向量,确定因子个数; 5求出因子载荷矩阵; 6根据情况进行因子旋转; 7计算因子得分

8以因子的贡献率为权重,计算因子得分的综合得分,根据综合得分排序。

SAS过程:

1在调用SAS的FACTOR过程做因子分析时,为使 SAS执行主成分法,应当在PROC FACTOR语句中,采用METHOD=p选项。

2在调用SAS的FACTOR过程做因子分析时,在PROC FACTOR语句中,采用选项METHOD=ML就能指示SAS执行极大似然法。使用极大似然法时必须是正定阵,协差阵行列式不能是0。

3在调用SAS的FACTOR过程做因子分析时,为使SAS执行主因子分析,应当在PROC FACTOR语句中,采用METHOD=p选项,并增加PRIORS语句,且相应变量值不等于1。 4迭代主因子法

一数据导入: data stock;

inputAllChemiduPontUnionCar Exxon Texaco; cards;

二操作过程: 1主成分法:

判断是否适用于因子分析:(同时可以得到因子负荷阵和共性方差)

proc factor data=stock method=p n=2 msa;/*采用主成分法,用相关阵计算,选取两个公共因子msa表示执行KMO(Kaiser-Meyer-Olkin)

检验*/

varAllChemiduPontUnionCar Exxon Texaco; /*可观测因子是AllChemi、duPont、UnionCar、Exxon、

Texaco */ run;

2极大似然法:

proc factor data=stock method=ml n=2 msa; /* method=ml采用极大似然法,对数据集stock用相关阵计算因子分析,n=2选取两个公共因子 */

varAllChemiduPontUnionCar Exxon Texaco; /*可观测因子是AllChemi、duPont、UnionCar、 Exxon、Texaco */ run;

分析:

Variance explained by each factor中的第三列即是每个因子负荷的平方和,反映因子的重要性:平方和越大,该因子越重要。

Final Communality Estimates and Variable Weights中的第二列即是共性方差,两个公共因子的含义和主成分法一样。

3采用主因子法(初始特殊因子的方差是0.3,0.2,0.3,0.3,0.2)的程序是

proc factor data=stock method=p n=2 msa; /*采用主因子法,对数据集stock用相关阵计算因子分析,选取两个公共因子*/

varAllChemiduPontUnionCar Exxon Texaco; /*可观测因子是AllChemi、duPont、UnionCar、 Exxon、Texaco */

priors 0.3 0.2 0.3 0.3 0.2;/*规定特殊因子的方差为0.3 0.2 0.3 0.3 0.2*/ run;

分析:同样可以得到每个因子负荷的平方和,反映因子的重要性:平方和越大,该因子越重要。同样可以得到共性方差,含义和主成分和极大似然法分析一样。 4迭代主因子法:

proc factor data=stock method=prinit n=2 msa; /*采用迭代主因子法,对数据集stock用相关阵计算因子分析,选取两个公共因子*/

varAllChemiduPontUnionCar Exxon Texaco; /*可观测因子是AllChemi、duPont、UnionCar、 Exxon、Texaco */ run;

如何比较不同估计方法的效果?详见课件因子分析。

通常所得的观测值都被简化为样本协差阵或样本相关阵,这时可以把样本协差阵或样本相关阵直接输入,从而计算因子负荷阵。 采用程序:

datadecathlo(type=corr); _type_='corr';

input _name_ $ run100m longjumpshotputhighjump run400m run110mh discus polevaul javelin run1500m;

cards;

run100m 1.0 .59 .35 .34 .63 .40 .28 .20 .11 -.07 longjump . 1.0 .42 .51 .49 .52 .31 .36 .21 .09 shotput . . 1.0 .38 .19 .36 .73 .24 .44 -.08 highjump . . . 1.0 .29 .46 .27 .39 .17 .18

run400m . . . . 1.0 .34 .17 .23 .13 .39 run110mh . . . . . 1.0 .32 .33 .18 .00 discus . . . . . . 1.0 .24 .34 -.02 polevaul . . . . . . . 1.0 .24 .17 javelin . . . . . . . . 1.0 -.00

run1500m . . . . . . . . . 1.0 ;

proc factor method=p n=4 ;

var run100m longjumpshotputhighjump run400m run110mh discus polevaul javelin run1500m; run;

3因子旋转

datadecathlo(type=corr); _type_='corr';

input _name_ $ run100m longjumpshotputhighjump run400m run110mh discus polevaul javelin run1500m; cards;

run100m 1.0 .59 .35 .34 .63 .40 .28 .20 .11 -.07 longjump . 1.0 .42 .51 .49 .52 .31 .36 .21 .09 shotput . . 1.0 .38 .19 .36 .73 .24 .44 -.08 highjump . . . 1.0 .29 .46 .27 .39 .17 .18

run400m . . . . 1.0 .34 .17 .23 .13 .39 run110mh . . . . . 1.0 .32 .33 .18 .00 discus . . . . . . 1.0 .24 .34 -.02 polevaul . . . . . . . 1.0 .24 .17 javelin . . . . . . . . 1.0 -.00

run1500m . . . . . . . . . 1.0 ;

proc factor method=prinnfact=4 rotate=v;

var run100m longjumpshotputhighjump run400m run110mh discus polevaul javelin run1500m; run;

得到的主要输出是旋转矩阵表(表头为Orthogonal Transformation Matrix)即可得到旋转正交阵;

同时,也可以得到旋转后的因子负荷阵表(表头为Rotated Factor Pattern)即可得到因子负荷阵。

4因子得分:

模型评价:

做因子分析时,存在许多变数:估计参数的方法有多种,公共因子的个数k可以取多个值,旋转方法有多种,如何操作?最简单的判断是:选k

使公共因子解释的方差占总方差的75%左右,公共因子有较合理的解释。用大样本理论也可建立确定k。有的统计学家,如Richad(2003)建议

采用如下策略:

1.选k使公共因子解释的方差占总方差的60%左右,且公共因子有较合理的解释。

2.对有关数据用主成分法,最大方差旋转做因子分析。对有关数据用极大似然法,最大方差旋转做因子分析。比较两种方法的因子负荷阵是否

大体相同?若大体相同,再以两种方法所得同一个公共因子的得分为纵横轴画散点图,看两种方法的因子得分是否出入不大?若出入不大,则

因子分析效果较好。

3.检查是否有必要再扩大公共因子个数k?

4.若样本容量很大,将样品分为两组,对每组做因子分析,再对整个样本做因子分析,比较三次因子分析的结果,以判断稳定性。

程序摘要: 1数据导入: data econ1;

input prov $ x1 x2 x3 x4 x5 x6 x7 x8; /*$表示它前面的变量读取字符*/ card;

2主成分解:

PROC FACTOR DATA= econ1 SIMPLE CORR(如果去掉,则会缺少基本信息的分析); Var x1-x8;

TITLE '8个经济指标的分析';(可省) TITLE2 '主成分解';(可省) RUN;

3选择公因子

在FACTOR语句中增加选项n = 3,重做分析: PROC FACTOR DATA= econ1 n = 3; Var x1 – x8;

RUN;

3因子旋转:

PROC FACTOR DATA= econ1 n = 3 ROTATE = VARIMAX REORDER; Var x1 – x8; RUN;

4因子得分:

PROC FACTOR DATA=econ1 n=3

ROTATE=VARIMAX REORDER SCORE OUT=OUT;(因子得分) RUN;

PROC PRINT DATA=Out;

VAR prov factor1 factor2 factor3;(各省的观测值代入以上因子得分函数,即得各地区的因子得分) RUN;

PROC PLOT DATA = Out;

PLOT factor2*factor1 $diqu = '*'/href=0 vref=0;(作图) RUN;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务