因子分析在STATA中实现和案例.docx
《因子分析在STATA中实现和案例.docx》由会员分享,可在线阅读,更多相关《因子分析在STATA中实现和案例.docx(15页珍藏版)》请在冰豆网上搜索。
因子分析在STATA中实现和案例
第13章因子分析
因子分析始于1904年CharsSpearman对学生成绩的分析,在经济领域有着极为广泛的用途。
在多个变量的变化过程中,除了一些特定因素之外,还受到一些共同因素的影响。
因此,每个变量可以拆分成两部分,一是共同因素,二是特殊因素。
这些共同因素称为公因子,特殊因素称为特殊因子。
因子分析即是提出多个变量的公共影响因子的一种多元统计方法,它是主成分分析的推广。
因子分析主要解决两类问题:
一是寻求基本结构,简化观察系统。
给定一组变量或观察数据,是否存在一个子集,特别是一个加权子集,来解释整个问题,即将为数众多的变量减少为几个新的因子,以再现它们之间的在联系。
二是用于分类,将变量或样本进行分类,根据因子得分值,在因子轴所构成的空间中进行分类处理。
p个变量X的因子模型表达式为:
f称为公因子,
称为因子载荷。
X的相关系数矩阵分解为:
对于未旋转的因子,
。
称为特殊度,即每个变量中不属于共性的部分。
13.1因子估计
Stata可以通过变量进行因子分析,也可以通过矩阵进行。
命令为factor或factormat。
webusebg2,clear
describe
factorbg2cost1-bg2cost6
factorbg2cost1-bg2cost6,factors
(2)
*pf主因子方法,用复相关系数的平方作为因子载荷的估计量(默认选项)
factorbg2cost1-bg2cost6,factors
(2)pcf
*pcf主成分因子,假定共同度=1
factorbg2cost1-bg2cost6,factors
(2)ipf
*ipf迭代主因子,重复估计共同度
factorbg2cost1-bg2cost6,factors
(2)ml
*ml极大似然因子,假定变量(至少3个)服从多元正态分布,对偏相关矩阵的行列式进行最优化求解,等价于Rao的典型因子方法
13.2预测
Stata可以通过predict预测变量得分、拟合值和残差等。
webusebg2,clear
factorbg2cost1-bg2cost6
predictf1f2
*factor1factor2因子分得分
predictstdpresiduals
*预测标准差和残差
13.3 Estat
Eatat给出了几个非常有用的工具,包括KMO、SMC等指标。
webusebg2,clear
factorbg2cost1-bg2cost6
estatanti
estatkmo
estatresiduals
estatsmc
estatsummarize
13.4因子旋转与作图
因子分析的旋转方法以及碎石图、得分图、因子载荷图与主成分分析的方法相同,请参见”主成分分析”一章。
webusebg2,clear
factorbg2cost1-bg2cost6
screeplot/*碎石图*/
scoreplot/*得分图*/
loadingplot/*因子载荷图*/
rotate/*旋转*/
例:
利用2009年的数据对中国社会发展状况进行综合考察,原始数据如下表:
省份
人均GDP(元)
新增固定资产(亿元)
城镇居民人均年可支配收入(元)
农村居民家庭人均纯收入(元)
高等学校数(所)
卫生机构数(个)
area
x1
x2
x3
x4
x5
x6
北京
63029
2385.8
24724.89
10661.92
85
6497
天津
55473
1676.8
19422.53
7910.78
55
2784
河北
23239
4734.2
13441.09
4795.46
105
15632
山西
20398
1772.6
13119.05
4097.24
69
9431
32214
3309.3
14432.55
4656.18
39
7162
辽宁
31259
5056.7
14392.69
5576.48
104
14627
吉林
23514
3279.9
12829.45
4932.74
55
9659
21727
2405.4
11581.28
4855.59
78
7928
上海
73124
2523.2
26674.9
11440.26
66
2822
江
39622
7645.9
18679.52
7356.47
146
13357
浙江
42214
3434.8
22726.66
9257.93
98
15290
安徽
14485
2849.5
12990.35
4202.49
104
7837
福建
30123
1768.3
17961.45
6196.07
81
4478
江西
14781
2962.5
12866.44
4697.19
82
8229
山东
33083
6852.5
16305.41
5641.43
125
14973
河南
19593
6414
13231.11
4454.24
94
11683
湖北
19860
3053.4
13152.86
4656.38
118
10305
湖南
17521
2478.2
13821.16
4512.46
115
14455
广东
37589
5529.2
19732.86
6399.79
125
15819
广西
14966
1419
14146.04
3690.34
68
10427
海南
17175
230.2
12607.84
4389.97
16
2220
重庆
18025
1381.9
14367.55
4126.21
47
6265
四川
15378
2918.7
12633.38
4121.21
90
20738
贵州
8824
903
11758.76
2796.93
45
5848
云南
12587
1551
13250.22
3102.6
59
9249
西藏
13861
137.4
12481.51
3175.82
6
1326
陕西
18246
2262.8
12857.89
3136.46
88
8812
甘肃
12110
575.2
10969.41
2723.79
39
10534
青海
17389
322.8
11640.43
3061.24
9
1582
宁夏
17892
403.9
12931.53
3681.42
15
1629
新疆
19893
1162.9
11432.1
3502.9
37
6739
程序:
clear
*定义变量的标签
labelvararea省份
labelvarx1"人均GDP(元)"
labelvarx2"新增固定资产(亿元)"
labelvarx3"城镇居民人均年可支配收入(元)"
labelvarx4"农村居民家庭人均纯收入(元)"
labelvarx5"高等学校数(所)"
labelvarx6"卫生机构数(个)"
describe
factorx1-x6
screeplot/*碎石图(特征值等于1处的水平线标示保留主成分的分界点)*/
*检验
estatkmo/*KMO检验,越高越好*/
estatsmc/*SMC检验,值越高越好*/
rotate/*旋转*/
loadingplot,yline(0)xline(0)/*载荷图*/
*预测
predictscorefitresidualq/*预测变量得分、拟合值和残差以及残差的平方和*/
predictf1f2
labelvarf1收入因子
labelvarf2"投资、社会因子"
listareaf1f2
summarizef1f2
correlatef1f2
scoreplot,xtitle("收入因子")ytitle("投资、社会因子")///
mlabel(area)yline(0)xline(0)/*得分图*/
分析:
首先通过主因子分析(factor),得到主成分因子:
Factoranalysis/correlationNumberofobs=31
Method:
principalfactorsRetainedfactors=3
Rotation:
(unrotated)Numberofparams=15
--------------------------------------------------------------------------
Factor|EigenvalueDifferenceProportionCumulative
-------------+------------------------------------------------------------
Factor1|3.281931.425440.65540.6554
Factor2|1.856481.816770.37071.0261
Factor3|0.039710.062440.00791.0341
Factor4|-0.022720.03972-0.00451.0295
Factor5|-0.062440.02293-0.01251.0170
Factor6|-0.08538.-0.01701.0000
--------------------------------------------------------------------------
LRtest:
independentvs.saturated:
chi2(15)=211.52Prob>chi2=0.0000
Factorloadings(patternmatrix)anduniquevariances
-----------------------------------------------------------
Variable|Factor1Factor2Factor3|Uniqueness
-------------+------------------------------+--------------
x1_s|0.8609-0.4463-0.1125|0.0469
x2_s|0.62740.6026-0.1061|0.2320
x3_s|0.8800-0.39310.0998|0.0611
x4_s|0.9120-0.36580.0365|0.0332
x5_s|0.65080.65260.0349|0.1494
x6_s|0.34270.76160.0572|0.2993
-----------------------------------------------------------
从上面的分析可以看出,只有两个成分大于1大于的特征值,同时两个成分解释了全部六个变量组合的方差还多。
不重要的第2到6个主成分在随后的分析中可以放心地省略去。
运行factor命令后,我们可以接着运行screeplot命令画出碎石图。
碎石图中特征值等于1处的水平线标示了保留主成分的常用分界点,同时再次强调了本例中的成分3到成分6并不重要。
碎石图
检验的方法还是跟上一章的主成分分析一样,由于我们都是选用实际的数据来进行分析,所以在一般情况下,检验都是通得过的,可以忽略,觉得有需要的再进行检验。
旋转会进一步简化因子结构。
在提取因子之后,键入rotate命令进行旋转。
Factoranalysis/correlationNumberofobs=31
Method:
principalfactorsRetainedfactors=3
Rotation:
orthogonalvarimax(Kaiseroff)Numberofparams=15
--------------------------------------------------------------------------
Factor|VarianceDifferenceProportionCumulative
-------------+------------------------------------------------------------
Factor1|2.904890.672140.58010.5801
Factor2|2.232762.192280.44591.0260
Factor3|0.04047.0.00811.0341
--------------------------------------------------------------------------
LRtest:
independentvs.saturated:
chi2(15)=211.52Prob>chi2=0.0000
Rotatedfactorloadings(patternmatrix)anduniquevariances
-----------------------------------------------------------
Variable|Factor1Factor2Factor3|Uniqueness
-------------+------------------------------+--------------
x1|0.96590.06010.1284|0.0469
x2|0.22690.83990.1052|0.2320
x3|0.95850.1143-0.0844|0.0611
x4|0.97080.1546-0.0211|0.0332
x5|0.22360.8940-0.0362|0.1494
x6|-0.09620.8291-0.0635|0.2993
-----------------------------------------------------------
Factorrotationmatrix
-----------------------------------------
|Factor1Factor2Factor3
-------------+---------------------------
Factor1|0.85780.51380.0115
Factor2|-0.51370.8579-0.0135
Factor3|0.0168-0.0056-0.9998
-----------------------------------------
结合实际情况,我们通过上面的分析整理出前两个主因子的正交因子表。
表:
正交因子表
因子
指标
Factor
Factor
1
2
x1
0.9659
0.0601
x2
0.2269
0.8399
x3
0.9585
0.1143
x4
0.9708
0.1546
x5
0.2236
0.8940
x6
-0.0962
0.8291
根据上表将六个指标按高载荷分成两类,并结合专业知识对各因子命名,如下表:
表:
高载荷分类
高载荷指标
因子命名
1
人均GDP
城镇居民人均年可支配收入
农村居民家庭人均纯收入
收入因子
2
高等学校数
卫生机构数
新增固定资产
投资、社会因子
接着进行一个后续因子分析的制图命令loadingplote有助于将其可视化。
从图中我们就可以直观的看出在主因子1中x1、x3、x4明显取得较大值,而对于主因子2则是x2、x5、x6取得较大的值。
载荷图
因子分是通过将每个变量标准化为平均数等于0和方差等于1,然后以因子分系数进行加权合计为每个因子构成的线性组合。
基于最近的rotate或factor结果,predict会自动进行这些计算。
通过命令predictf1f2,我们得到了各个观察变量的主因子1、主因子2的得分情况。
.listareaf1f2
+--------------------------------+
|areaf1f2|
|--------------------------------|
1.|北京2.561218-.3716789|
2.|天津1.557873-.9623399|
3.|河北-.33086411.11135|
4.|山西-.4196471-.1267554|
5.|.0597282-.493462|
|--------------------------------|
6.|辽宁.05891541.03599|
7.|吉林-.1869884-.0693724|
8.|-.3388027.0518705|
9.|上海3.102133-.8749663|
10.|江.77138721.864629|
|--------------------------------|
11.|浙江1.640963.5580102|
12.|安徽-.5925296.5026094|
13.|福建.5376554-.3128498|
14.|江西-.445243.2467043|
15.|山东.15895031.588749|
|--------------------------------|
16.|河南-.47445981.084772|
17.|湖北-.4194019.7986803|
18.|湖南-.4611212.8609527|
19.|广东.64253421.33433|
20.|广西-.5491737-.1288966|
|--------------------------------|
21.|海南-.2889173-1.39015|
22.|重庆-.3183038-.6323313|
23.|四川-.652319.9108785|
24.|贵州-.9411649-.6618432|
25.|云南-.7608307-.2586383|
|--------------------------------|
26.|西藏-.6072451-1.569231|
27.|陕西-.7326311.1913275|
28.|甘肃-.9497479-.5987777|
29.|青海-.6269016-1.50444|
30.|宁夏-.4114082-1.422286|
|--------------------------------|
31.|新疆-.5836563-.7628338|
+--------------------------------+
.summarizef1f2
Variable|ObsMeanStd.Dev.MinMax
-------------+--------------------------------------------------------
f1|31-4.09e-09.988557-.94974793.102133
f2|319.13e-09.9464783-1.5692311.864629
在这些因子分之间是存在着相关,在默认选项中,promax旋转允许因子分之间存在相关。
通过运行命令correlatef1f2可得。
从运行出来的结果看到,两个因子分相关关系是很小的。
.correlatef1f2
(obs=31)
|f1f2
-------------+------------------
f1|1.0000
f2|0.01581.0000
另一个后因子分析制图命令,scoreplot可绘出这些观测案例的因子分的散点图。
在本例的得分图中,我们可以看到,、、、天津这些城市的主因子1的得分相对于其他城市高,因为主因子1是收入因子,这些城市的收入在全国是排在前列的。
而我们可以看到、的在主因子2(即投资、社会因子)的得分是较低,这是因为这两个城市的经济总量相对较小。
在、、这些经济总量名列前茅的省份,它们的主因子2的得分也是相应位于其他城市前面。
得分图
练习:
将上一章的主成分分析的例子的数据进行因子分析。
省份
GDP(亿元)
居民消费水平(元)
固定资产投资(亿元)
职工平均工资(元)
货物周转量(亿吨公里)
居民消费价格指数(上年100)
商品零售价格指数(上年100)
工业总产值(亿元)
area
x1
x2
x3
x4
x5
x6
x7
x8
北京
10488.03
20346
3814.7
56328
758.9
105.1
104.4
10413
天津
6354.38
14000
3389.8
41748
2703.4
105.4
105.1
12503
河北
16188.61
6570
8866.6
24756
5925.5
106.2
106.7
23031
山西
6938.73
6187
3531.2
25828
2562.2
107.2
107.2
10024
7761.8
8108
5475.4
26114
3658.7
105.7
104.7
8740.2
辽宁
13461.57
9625
10019.1
27729
7033.9
104.6
105.