如何利用STATA进行因子分析
首先在进行因子分析之前,一定要将数据清理好后再进行,否则你有可能会得到不同的结果,然后开始纠结需要选择哪个结果。
以CGSS2013B卷D部分第8题下设23道为例做因子分析,首先需要进行KMO检验或者巴特利特球形检验,巴特利特球形检验可以在提取因子之前进行检验,但是STATA对KMO指令的实现需要在因子提取完成之后再进行,故先进行因子提取
1.factor var1-var10,pcf 其中附加指令pcf是为了假定共同度为1
结果呈现如下
从第一列可知,这23道小题在进行因子提取后生成五个公共因子,只有初始值大于1才可以被认为成构成因子,而这五个公共因子解释力达到55.03%
完成公共因子提取后,就需要检验我们提取的因子是否成立,检验的方式有两种:1.KMO检验 2.巴特利特球形检验
2.estat kmo
例子的KMO检验结果为0.9232,一般来讲>0.6可以接受、>0.7较好、>0.8很好、>0.9就算是非常合适了,0.9232算是非常靠谱的结果,证明我们之前进行的公因子提取是OK的
estat smc 也是可以的,如果值越大,说明共线性越大,越适合做主成分分析,但是这个例子所出来结果不太理想,意外的KMO很高,也不知道是为啥(?)
巴特利特球形检验需要另外安装指令,指令如下
net install factortest.pkg
help factortest
factortest var1-var10 该检验需要显著性小于0.001,经检验这一例子也符合这个要求
3.rotate 我们在完成公共因子提取和检验之后,需要了解一下每个因子具体包含哪些题目,进行因子载荷矩阵旋转可以达成这一目的
那我们如何能从这个表格中看出每个题目从属哪个因子呢?这里介绍一个方法。以d801为例,从中挑选出系数最大的,这一题最大的系数为0.5816,从属于factor1,也就是属于第一个公共因子中。在完成所有题目归纳后,我们就可以依据题目的性质来给公共因子命名,实现我们需要的变量。
当然如果认为这样一个一个对着看比较烦可以尝试以下指令
predict f1 f2 f3 f4 f5
会获得这样一个结果
可以将正负和大小比较结合起来就能比较快速的挑选因子题目,也能把因子分别保存成新的变量,我们会在变量栏里找到新生成的f1-f5
4.为了方便我们将计算好的因子带入到模型中,我们需要计算出具体的因子得分,其公式为
综合因子得分=因子占比权重*因子
eg : gen zf=(0.1447*f1+0.1360*f2+0.1077*f3+0.0817*f4+0.0802*f5)
由于我们之前生成了新的各因子变量,该指令后也会直接报告各因子得分,然后就可以作为尺度变量带入模型
网友评论