分享

因子分析法FA理论讲解与程序实现指南

 张春强2022 2018-06-08

箱:econometrics666@sina.cn

所有计量经济圈方法论丛的do文件都放在社群里,可以直接取出使用运行,也欢迎到研究小组交流访问.

推荐阅读

主成分分析和因子分析 PC, FA 及运行结果

主成分分析/因子分析/判别分析,见过的最通俗易懂的解释

因子分析始于1904年Chars Spearman对学生成绩的分析,在经济领域有着极为广泛的用途。在多个变量的变化过程中,除了一些特定因素之外,还受到一些共同因素的影响。因此,每个变量可以拆分成两部分,一是共同因素,二是特殊因素。这些共同因素称为公因子,特殊因素称为特殊因子。因子分析即是提出多个变量的公共影响因子的一种多元统计方法,它是主成分分析的推广。


因子分析主要解决两类问题:一是寻求基本结构,简化观察系统。给定一组变量或观察数据,是否存在一个子集,特别是一个加权子集,来解释整个问题,即将为数众多的变量减少为几个新的因子,以再现它们之间的内在联系。二是用于分类,将变量或样本进行分类,根据因子得分值,在因子轴所构成的空间中进行分类处理。


 

因子估计的操作

Stata可以通过变量进行因子分析,也可以通过矩阵进行。命令为factor或factormat。

webuse bg2,clear

describe

factor bg2cost1-bg2cost6

factor bg2cost1-bg2cost6, factors(2)

* pf  主因子方法,用复相关系数的平方作为因子载荷的估计量(默认选项)

factor bg2cost1-bg2cost6, factors(2) pcf

* pcf 主成分因子,假定共同度=1

factor bg2cost1-bg2cost6, factors(2) ipf

* ipf 迭代主因子,重复估计共同度

factor bg2cost1-bg2cost6, factors(2) ml

* ml  极大似然因子,假定变量(至少3个)服从多元正态分布,对偏相关矩阵的行列式进行最优化求解,等价于Rao的典型因子方法


预测

Stata可以通过predict预测变量得分、拟合值和残差等。

webuse bg2,clear

factor bg2cost1-bg2cost6

predict f1 f2

* factor1 factor2因子分得分 

predict stdp residuals

* 预测标准差和残差

 

Estat

Eatat给出了几个非常有用的工具,包括KMO、SMC等指标。

webuse bg2,clear

factor bg2cost1-bg2cost6

estat anti

estat kmo

estat residuals

estat smc

estat summarize

 

因子旋转与作图

因子分析的旋转方法以及碎石图、得分图、因子载荷图与主成分分析的方法相同。

webuse bg2,clear

factor bg2cost1-bg2cost6

screeplot   /*碎石图*/

scoreplot   /*得分图*/

loadingplot   /*因子载荷图*/

rotate   /*旋转*/

 

:利用2009年的数据对中国社会发展状况进行综合考察,原始数据如下表:


程序:

clear

*定义变量的标签

label var area  省份

label var x1  '人均GDP(元)'

label var x2  '新增固定资产(亿元)'

label var x3  '城镇居民人均年可支配收入(元)'

label var x4  '农村居民家庭人均纯收入(元)'

label var x5  '高等学校数(所)'

label var x6  '卫生机构数(个)'  

describe

factor x1-x6 

screeplot  /* 碎石图(特征值等于1处的水平线标示保留主成分的分界点)*/


*检验

estat kmo /*KMO检验,越高越好*/

estat smc /*SMC检验,值越高越好*/


rotate  /*旋转*/


loadingplot , yline(0) xline(0)/*载荷图 */

 

*预测

predict score fit residual q /*预测变量得分、拟合值和残差以及残差的平方和*/

predict f1 f2

label var f1 收入因子

label var f2 '投资、社会因子'

list area f1 f2

summarize f1 f2

correlate f1 f2

 

scoreplot,xtitle('收入因子') ytitle('投资、社会因子') ///

mlabel(area) yline(0) xline(0) /*得分图*/

 

分析:

首先通过主因子分析(factor),得到主成分因子:

从上面的分析可以看出,只有两个成分大于1大于的特征值,同时两个成分解释了全部六个变量组合的方差还多。不重要的第2 到6个主成分在随后的分析中可以放心地省略去。


运行factor命令后,我们可以接着运行screeplot命令画出碎石图。碎石图中特征值等于1处的水平线标示了保留主成分的常用分界点,同时再次强调了本例中的成分3到成分6并不重要。


检验的方法还是跟上一章的主成分分析一样,由于我们都是选用实际的数据来进行分析,所以在一般情况下,检验都是通得过的,可以忽略,觉得有需要的再进行检验。


旋转会进一步简化因子结构。在提取因子之后,键入rotate命令进行旋转。

结合实际情况,我们通过上面的分析整理出前两个主因子的正交因子表。

表:正交因子表

            因   子

指   标

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会自动进行这些计算。通过命令predict f1 f2,我们得到了各个观察变量的主因子1、主因子2的得分情况。



在这些因子分之间是存在着相关,在默认选项中,promax旋转允许因子分之间存在相关。通过运行命令correlate f1 f2可得。从运行出来的结果看到,两个因子分相关关系是很小的。


另一个后因子分析制图命令,scoreplot可绘出这些观测案例的因子分的散点图。在本例的得分图中,我们可以看到,上海、北京、浙江、天津这些城市的主因子1的得分相对于其他城市高,因为主因子1是收入因子,这些城市的收入在全国是排在前列的。而我们可以看到北京、上海的在主因子2(即投资、社会因子)的得分是较低,这是因为这两个城市的经济总量相对较小。在江苏、山东、广东这些经济总量名列前茅的省份,它们的主因子2的得分也是相应位于其他城市前面。

得分图

Edited by@计量经济圈(ID:econometrics666), 感谢贝拿推荐; 来源: unknown sources.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多