SAS学习系列34 因子分析.docx
- 文档编号:30321132
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:23
- 大小:191.61KB
SAS学习系列34 因子分析.docx
《SAS学习系列34 因子分析.docx》由会员分享,可在线阅读,更多相关《SAS学习系列34 因子分析.docx(23页珍藏版)》请在冰豆网上搜索。
SAS学习系列34因子分析
34.因子分析
(一)基本原理
一、概述
因子分析,是用少数起根本作用、相互独立、易于解释通常又是不可观察的因子来概括和描述数据,表达一组相互关联的变量。
通常情况下,这些相关因素并不能直观观测。
因子分析是从研究相关系数矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。
简言之,即用少数不可观测的隐变量来解释原始变量之间的相关性或协方差关系。
因子分析的作用是减少变量个数,根据原始变量的信息进行重组,能反映原有变量大部分的信息;原始部分变量之间多存在较显著的相关关系,重组变量(因子变量)之间相互独立;因子变量具有命名解释性,即该变量是对某些原始变量信息的综合和反映。
主成分分析是因子分析的特例。
主成份分析的目标是降维,而因子分析的目标是找出公共因素及特有因素,即公共因子与特殊因子。
因子分析模型在形式上与线性回归模型相似,但两者有着本质的区别:
回归模型中的自变量是可观测到的,而因子模型中的各公因子是不可观测的隐变量,而且两个模型的参数意义也不相同。
二、原理
假设样品检测p个指标(变量)X1,…,Xp,得到观测矩阵X,这p个指标变量可能受m(m
表示为:
用矩阵表示为
其中,共同影响因素f1,…fm是均值为0方差为1的随机变量,称为公共因子;Ap×m称为因子载荷矩阵,aji是第j变量在第i公共因子上的负荷,即Xj在坐标轴fi上的投影;ei是变量Xi所特有的因子,均值为0方差为σi2,称为特殊因子。
各特殊因子之间及特殊因子与公共因子之间都是相互独立的,即COV(ei,ej)=0,COV(e,f)=0.
因子分析就是用f1,…fm代替X1,…,Xp,达到降维的目的。
主成份分析中,残差通常是彼此相关的。
因子分析中,特殊因子起到残差的作用,但被定义为彼此不相关且和公因子也不相关。
而且每个公因子假定至少对两个变量有贡献,否则它将是一个特殊因子。
在开始提取公共因子时,已假定它们彼此不相关且具有单位方差。
故向量X的协方差矩阵Σ可以表为
Σ=D(X)=D(Af+e)=AAT+D
其中,D=diag(σ12,…,σp2).若假定X已标准化,即每个Xi都均值为0方差为1.则
记
称为变量共同度,则有
.
hi2反映了公共因子f对Xi的影响(贡献),即Xi对共同因素f的依赖程度;σi2为剩余方差,若hi2接近1,σi2很小,则表明因子分析的效果好。
公共因子fj对Xi的影响,可由A中第j列元素来描述,
称为公共因子fj对X的贡献,是衡量公共因子重要性的尺度。
aij为第i个变量与第j个公共因子的相关系数,反映了它们的相关程度:
三、求因子载荷矩阵
若X的协方差矩阵∑和D已知,则根据∑-D=AAT求出A
其中,λ1≥λ2≥…λm>λm+1=…=λp=0为∑*=∑-D的特征值,ξi为相应的特征向量。
但在实际问题中,并不知道∑和D,就需要从n个样品,p个指标的np个样本数据,估计因子载荷aij和特殊因子方差σi2.常用的参数估计法有:
主成分法、主因子解法、极大似然法。
(1)主成分法
记样本数据的协方差矩阵为
,其特征值λ1≥λ2≥…≥λp≥0,相应的特征向量为ξi.当最后p-m个特征值较小时,对
做谱分解:
先取
,看
是否接近对角矩阵,若是,说明只取一个公共因子就行了,所有指标主要受到这一个公共因子的影响;若否,再取
,看
是否接近对角矩阵……象主成分分析一样,直接取前q个特征值和特征向量,使得它们的特征值之和占全部特征值之和的85%以上即可。
此时,特殊因子方差为
(2)主因子解法
主因子解法是对主成分法的修正,记样品数据的相关矩阵为R,设R=AAT+D,则R*=R–D=AAT称为约相关矩阵。
若已知特殊因子方差的初始估计
,则
,故
计算R*的特征值λ1*≥λ2*≥…≥λp*>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=数据集<可选项>;
VAR变量列表;
说明:
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.2
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
115.2
114.2
762.47
黑龙江
2014.53
2334
435.73
4145
824.8
116.1
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
115.8
114.3
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
115.2
114.4
433.67
江西
1205.11
1182
282.84
4211
411.7
116.9
115.9
571.84
山东
5002.34
1527
1229.55
5145
1196.6
117.6
114.2
2207.69
河南
3002.74
1034
670.35
4344
1574.4
116.5
114.9
1367.92
湖北
2391.42
1527
571.68
4685
849
120
116.6
1220.72
湖南
2195.7
1408
422.61
4797
1011.8
119
115.5
843.83
广东
5381.72
2699
1639.83
8250
656.5
114
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
113.5
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
126
.4
121.3
118.1
716.65
西藏
55.98
1110
17.87
7382
4.2
117.3
114.9
5.57
陕西
1000.03
1208
300.27
4396
500.9
119
117
600.98
甘肃
553.35
1007
114.81
5493
507
119.8
116.5
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
114.4
新疆
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;
run;
运行结果及说明:
30个观测的均值和标准差
变量
均值
标准差
x1
1921.0927
1474.8060
x2
1745.9333
861.6419
x3
511.5083
402.8855
x4
5457.6333
1310.2181
x5
666.1200
459.9353
x6
117.2867
2.0253
x7
114.9067
1.8981
x8
862.9980
584.5873
相关性
x1
x2
x3
x4
x5
x6
x7
x8
x1
1.00000
0.26676
0.95058
0.19058
0.61724
-0.27256
-0.26363
0.87374
x2
0.26676
1.00000
0.42614
0.71813
-0.15101
-0.23514
-0.59273
0.36310
x3
0.95058
0.42614
1.00000
0.39963
0.43062
-0.28049
-0.35905
0.79186
x4
0.19058
0.71813
0.39963
1.00000
-0.35559
-0.13496
-0.53916
0.10438
x5
0.61724
-0.15101
0.43062
-0.35559
1.00000
-0.25318
0.02172
0.65858
x6
-0.27256
-0.23514
-0.28049
-0.13496
-0.25318
1.00000
0.76284
-0.12522
x7
-0.26363
-0.59273
-0.35905
-0.53916
0.02172
0.76284
1.00000
-0.19207
x8
0.87374
0.36310
0.79186
0.10438
0.65858
-0.12522
-0.19207
1.00000
相关系数矩阵
先验公因子方差估计:
ONE
相关矩阵的特征值:
总计=8平均值=1
特征值
差值
比例
累积
1
3.75512808
1.55839208
0.4694
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
x1
0.88490
0.38362
0.12088
x2
0.60671
-0.59819
0.27132
x3
0.91169
0.16112
0.21198
x4
0.46622
-0.72241
0.36793
x5
0.48583
0.73829
-0.27524
x6
-0.50856
0.25191
0.79664
x7
-0.61959
0.59438
0.43756
x8
0.82273
0.42672
0.21098
因子模型(因子载荷矩阵),即公因子用原始变量表示的回归系数。
由因子载荷系数看出,三个因子的含义不易解释,故需要考虑作因子旋转。
每个因子说明的方差
Factor1
Factor2
Factor3
3.7551281
2.1967360
1.2148918
最终的公因子方差估计:
总计=7.166756
x1
x2
x3
x4
x5
x6
x7
x8
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);
varx1-x8;
run;
运行结果及说明:
初始因子方法:
主成分
未旋转因子,变量有3个聚点。
旋转因子目的是让一些变量取值是0.
FACTOR过程
旋转方法:
Varimax
旋转后的因子,x2,x4,x6,x7取值接近于0,只剩x1,x3,x5,x8.
旋转方法:
Varimax
正交变换矩阵
1
2
3
1
0.81731
0.40
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS学习系列34 因子分析 SAS 学习 系列 34
![提示](https://static.bdocx.com/images/bang_tan.gif)