SAS学习系列34因子分析Word文件下载.docx
《SAS学习系列34因子分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《SAS学习系列34因子分析Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
![SAS学习系列34因子分析Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/0642f43a-0c6c-4f70-b1c3-e8925a2201b0/0642f43a-0c6c-4f70-b1c3-e8925a2201b01.gif)
0,相应的特征向量为ui*,则有近似分解式:
R*=AAT,其中
令
则A和D为因子模型的一个解,称为主因子解。
在实际中特殊因子方差是未知的,以上得到的解是近似解。
为了得到近似程度更好的解,常常采用迭代主因子法。
即利用上面得到的
作为特殊因子方差的初始估计,重复上述步骤,直到解稳定为止。
变量共同度hi2常用的初始估计有以下三种方法:
①取第i个变量与其他所有变量的多重相关系数的平方;
②取第i个变量与其他变量相关系数绝对值的最大值;
③取1(等价于主成分解)。
(3)极大似然法
假定公共因子f和特殊因子e服从正态分布,则可得到因子载荷阵和特殊因子方差的极大似然估计。
设p维观测向量X
(1),...,X(n)为来自正态总体Np(μ,∑)的随机样品,则样品似然函数为μ,∑的函数L(μ,∑).
设∑=AAT+D,取
,则似然函数为A,D的函数:
φ(A,D),求A,D使φ(A,D)达到最大。
为保证得到唯一解,可附加计算上方便的唯一性条件:
ATD-1A=对角阵,用迭代方法可求得极大似然估计A和D。
四、公共因子的解释
得到估计的因子模型后,还必须对得到的公因子进行解释。
即对每个公共因子给出一种意义明确的名称,用来反映在预测每个可观察变量中这个公因子的重要性。
该公因子的重要程度就是在因子模型矩阵中相应于这个因子的系数,显然这个因子的系数绝对值越大越重要,而接近0则表示对可观察变量没有什么影响。
因子解释是一种主观的方法,有时侯通过旋转公因子可以减少这种主观性,也就是要使用非奇异的线性变换。
1.因子旋转
将因子载荷矩阵A右乘一个正交矩阵T后得到一个新的矩阵A*。
它并不影响变量Xi的共同度hi2,却会改变因子的方差贡献gj2。
因子旋转通过改变坐标轴,能够重新分配各个因子解释原始变量方差的比例,使因子更易于理解。
设p维可观测向量X满足因子模型:
X=AF+e。
T为正交矩阵,则因子模型可写为
X=ATTTF+e=A*F*+e
其中A*=AT,F*=TTF.易知,
∑=AAT+D=A*A*T+D
其中A*=AT.这说明,若A,D是一个因子解,任给正交阵T,A*=AT,D也是因子解。
在这个意义下,因子解是不惟一的。
由于因子载荷阵不惟一,故可对因子载荷阵进行旋转。
目的是使因子载荷阵的结构简化,使载荷矩阵每列或行的元素平方值向0和1两极分化,这样的因子便于解释和命名。
有三种主要的正交旋转法:
四次方最大法、方差最大法和等量最大法。
这些旋转方法的目标是一致的,只是策略不同。
如果两种旋转模型导出不同的解释,这两种解释不能认为是矛盾的。
倒不如说是看待相同事物的两种不同方法,是在公因子空间中的两个不同点。
在统计意义上所有旋转都是一样的,即不能说一些旋转比另一些旋转好。
因此,在不同的旋转方法之间进行的选择必须根据非统计观点,通常选择最容易解释的旋转模型。
2.因子得分
计算因子得分,是用原有变量来描述因子,第j个因子在第i个样品上的值可表示为:
Fji=j1xi1+j2xi2+…+jpxipj=1,…,k
其中,xi1,…,xip分别是第1,…,p个原有变量在第i个样品上的取值,j1,…,jp分别是第j个因子和第1,…,k个原有变量间的因子值系数。
可见,它是原有变量线性组合的结果(与因子分析的数学模型正好相反),因子得分可看作各变量值的加权(j1,…,jp)总和,权数的大小表示了变量对因子的重要程度。
于是有
Fj=j1X1+j2X2+…+jpXpj=1,…,k
称为因子得分函数。
由于因子个数k小于原有变量个数p,故式中方程的个数少于变量的个数。
因此,对因子值系数通常采用最小二乘意义下的回归法进行估计。
可将上式看作是因子变量Fj对p个原有变量的线性回归方程(其中常数项为0)。
可以证明,式中回归系数的最小二乘估计满足:
Bj=AjTR-1,其中
Bj=(j1,j2,…,jp),AjT=(a1j,a2j,…,apj)
为第1,…,p个变量在第j个因子上的因子载荷,R-1为原有变量的相关系数矩阵的逆矩阵。
由上式计算出因子变量Fj的因子值系数,再利用因子得分函数可算出第j个因子在各个样品上的因子得分。
(二)SAS实现
一、PROCFACTOR过程步
基本语法:
PROCFACTORDATA=数据集<
可选项>
;
<
PRIORS计算公因子方差的方法;
>
VAR变量列表;
PARTIAL变量列表;
FREQ变量;
WEIGHT变量;
BY变量;
说明:
1.可选项:
out=数据集——存储原始数据和因子得分估计;
outstat=数据集——用于存储因子分析的结果,可以用来做进一步因子分析;
method=因子选择方法
常用的包括:
principal(主成分法),ml(极大似然法),prinit(迭代主因子法),usl(未加权最小二乘因子法),alpha(因子法或称harris法)
Heywood
公因子方差大于1时令其为1,并允许迭代继续执行下去。
因为公因子方差是相关系数的平方(介于0和1之间),若最终的公因子方差=1,称为Heywood状况;
若大于1,称为超-Heywood状况,因子解无效。
priors=计算公因子方差的方法
即给各变量的公因子方差赋初值,包括one(=1.0),max(最大绝对相关系数),smc(多元相关系数的平方),asmc(与多元相关系数的平方成比例,但要适当调整使它们的和等于最大绝对相关)。
nfactors=n——指定保留的因子个数;
mineigen=p——指定保留因子的最小特征值;
proportion=p
使用先验公因子方差估计,对被保留的因子规定所占公共方差比例为这个p值。
converge=p
当公因子方差的最大改变小于p时停止迭代,默认为0.001;
maxiter=n——规定迭代的最大步数,默认为30;
rotate=因子旋转方法
常用的有varimax(正交的最大方差转轴法)、orthomax(由gamma=指定权数的正交方差最大转轴法)和promax(在正交最大方差转轴的基础上进行斜交旋转)。
norm=kaiser|raw|weight|cov|none
为了对因子模型进行旋转,规定模型矩阵中行的正规化方法。
2.输出选项
simple——输出简单统计数。
corr——输出相关阵和偏相关阵。
score——输出因子得分模型中的系数。
scree——输出特征值的屏幕图。
ev——输出特征向量。
residuals——输出残差相关阵和有关的偏相关阵。
msa——输出被所有其余变量控制的每对变量间的偏相关,并抽样适当的Kaiser度量。
reorder——在输出时让各种因子矩阵的这些行重新排序。
按因子顺序,绝对载荷大的变量先被输出。
3.PLOTS=绘图选项
ALL——绘制所有图形;
INITLOADINGS/LOADINGS/PRELOADINGS——未旋转的/旋转的/预先旋转的因子载荷,子选项有CIRCLE=,FLIP,NPLOTS=,PLOTREF,VECTOR;
SCREE——陡坡图和变量解释,子选项有UNPACK;
4.priors语句
为var变量设定公因子方差,值在0.0和1.0之间。
其值的设定应与var语句的变量相对应。
二、PROCSCORE过程步
无论是初始因子模型还是旋转后的因子模型,都是将指标表示为公因子的线性组合。
在因子分析中,还可以将公因子表示为指标的线性组合,这样就可以从指标的观测值估计各个公因子的值(因子得分)。
它对样品的分类有实际意义。
因子得分可由procscore过程完成,可以输出特征值情况、因子载荷、公因子解释比例等。
PROCSCOREDATA=<
原始数据集>
;
VAR<
用来计算得分的原始变量列表>
或者在FACTOR过程步中加上可选项SCORE。
注:
factor和score两个过程写同一程序可以提高效率。
例1对全国30个省市自治区经济发展基本情况的八项指标作因子分析。
省份
GDP
x1
居民消费水平x2
固定资产投资x3
职工平均工资x4
货物周转量
x5
居民消费价格指数
x6
商品零售价格指数x7
工业总产值
x8
北京
1394.89
2505
519.01
8144
373.9
117.3
112.6
843.43
天津
920.11
2720
345.46
6501
342.8
115.2
110.6
582.51
河北
2849.52
1258
704.87
4839
2033.3
115.8
1234.85
山西
1092.48
1250
290.9
4721
717.3
116.9
115.6
697.25
内蒙古
832.88
1387
250.23
4134
781.7
117.5
116.8
419.39
辽宁
2793.37
2397
387.99
4911
1371.1
116.1
114
1840.55
吉林
1129.2
1872
320.45
4430
497.4
114.2
762.47
黑龙江
2014.53
2334
435.73
4145
824.8
114.3
1240.37
上海
2462.57
5343
996.48
9279
207.4
118.7
113
1642.95
江苏
5155.25
1926
1434.95
5943
1025.5
2026.64
浙江
3524.79
2249
1006.39
6619
754.4
116.6
113.5
916.59
安徽
2003.58
1254
474
4609
908.3
114.8
112.7
824.14
福建
2160.52
2320
553.97
5857
609.3
114.4
433.67
江西
1205.11
1182
282.84
4211
411.7
115.9
571.84
山东
5002.34
1527
1229.55
5145
1196.6
117.6
2207.69
河南
3002.74
1034
670.35
4344
1574.4
116.5
114.9
1367.92
湖北
2391.42
571.68
4685
849
120
1220.72
湖南
2195.7
1408
422.61
4797
1011.8
119
115.5
843.83
广东
5381.72
2699
1639.83
8250
656.5
111.6
1396.35
广西
1606.15
1314
382.59
5105
556
118.4
116.4
554.97
海南
364.17
1814
198.35
5340
232.1
111.3
64.33
四川
3534
1261
822.54
4645
902.3
118.5
117
1431.81
贵州
630.07
942
150.84
4475
301.1
121.4
117.2
324.72
云南
1206.68
334
5149
310.4
121.3
118.1
716.65
西藏
55.98
1110
17.87
7382
4.2
5.57
陕西
1000.03
1208
300.27
4396
500.9
600.98
甘肃
553.35
1007
114.81
5493
507
119.8
468.79
青海
165.31
1445
47.76
5753
61.6
118
116.3
105.8
宁夏
169.75
1355
61.98
5079
121.8
117.1
115.3
新疆
834.57
1469
376.95
5348
339
119.7
116.7
428.76
代码:
dataEconomics;
infile'
C:
\MyRawData\Economics.txt'
inputProvince$x1x2x3x4x5x6x7x8;
run;
procfactordata=Economicsn=3SIMPLECORRplots=(scree);
varx1-x8;
运行结果及说明:
30个观测的均值和标准差
变量
均值
标准差
1921.0927
1474.8060
x2
1745.9333
861.6419
x3
511.5083
402.8855
x4
5457.6333
1310.2181
666.1200
459.9353
117.2867
2.0253
x7
114.9067
1.8981
862.9980
584.5873
相关性
1.00000
0.26676
0.95058
0.19058
0.61724
-0.27256
-0.26363
0.87374
0.42614
0.71813
-0.15101
-0.23514
-0.59273
0.36310
0.39963
0.43062
-0.28049
-0.35905
0.79186
-0.35559
-0.13496
-0.53916
0.10438
-0.25318
0.02172
0.65858
0.76284
-0.12522
-0.19207
相关系数矩阵
先验公因子方差估计:
ONE
相关矩阵的特征值:
总计=8平均值=1
特征值
差值
比例
累积
1
3.75512808
1.55839208
0.4694
2
2.19673600
0.98184422
0.2746
0.7440
3
1.21489177
0.81249198
0.1519
0.8958
4
0.40239979
0.18959738
0.0503
0.9461
5
0.21280241
0.07484352
0.0266
0.9727
6
0.13795890
0.07250109
0.0172
0.9900
7
0.06545781
0.05083257
0.0082
0.9982
8
0.01462524
0.0018
1.0000
相关矩阵的特征值和累积贡献,前三个主成分的累积贡献为89.58%,故考虑选取三个公共因子。
3个因子将被NFACTOR准则保留。
绘图选项scree绘制陡坡图
因子模式
Factor1
Factor2
Factor3
0.88490
0.38362
0.12088
0.60671
-0.59819
0.27132
0.91169
0.16112
0.21198
0.46622
-0.72241
0.36793
0.48583
0.73829
-0.27524
-0.50856
0.25191
0.79664
-0.61959
0.59438
0.43756
0.82273
0.42672
0.21098
因子模型(因子载荷矩阵),即公因子用原始变量表示的回归系数。
由因子载荷系数看出,三个因子的含义不易解释,故需要考虑作因子旋转。
每个因子说明的方差
3.7551281
2.1967360
1.2148918
最终的公因子方差估计:
总计=7.166756
0.94482954
0.79954948
0.90208112
0.87460860
0.85685809
0.95672136
0.92862683
0.90348083
公因子对原始变量的解释能力(方差贡献)的量度分别为3.75512812.19673601.2148918,三个公因子对变量的解释能力的总和为7.166756.各个变量的共同度hi2都较大(接近1),可以认为三个公因子可以很好地解释原始变量中的信息。
例2为了更好地解释公共因子,继续做因子旋转——方差最大正交旋转。
在PROCFACTOR语句中再加上一个ROTATE=PROMAX旋转选项,这样将在得到主成分解后再进行方差最大正交旋转(VARIMAX),并加了REORDER选项使输出时把原始变量受相同因子影响的放一起。
procfactordata=Economicsn=3ROTATE=VARIMAXREORDERplots=(initloadingspreloadingsloadings);
初始因子方法:
主成分
未旋转因子,变量有3个聚点。
旋转因子目的是让一些变量取值是0.
FACTOR过程
旋转方法:
Varimax
旋转后的因子,x2,x4,x6,x7取值接近于0,只剩x1,x3,x5,x8.
正交变换矩阵
0.81731
0.40776
-0.40710
0.54