验证性因子分析

因子分析可以分为探索性因子分析(EFA)和验证性因子分析(CFA),探索性因子分析(EFA)我之前写过一篇文章介绍,这里不再展开,想看的可以点这。验证性因子分析(CFA)相对而言更复杂一点,而且就我的专业而言基本用不上,不过还是很有意思的所以今天也去了解了一下。
想要了解一下的可以看邱皓政老师的《量化研究与统计分析:SPSS(PASW)数据分析范例解析》,然后看一下SPSSAU写的介绍性文章 and SPSSAU写的一个例子就可以有一个基本的了解 ,不过这些都是比较简单的介绍,想要深入理解肯定还是需要专门读下专著的。
本博文主要是记录下我的理解,以及一个总体的进行验证性因子分析的思路。

1.我的理解

验证性因子分析(CFA)可以用来验证自己预先提出的一种结构,比如在设计问卷前我就想好了Q1-Q3这三题反应的是一个人的思维能力(Factor1),Q4-Q6这三题反应的是一个人的体能能力(Factor2),接下来,我们就可以使用CFA来进行判断收集到的数据是否能够按照预先提出的结构来划分。也就是我们预先的理论架构是否是好的,题目设置是否是好的,收集到的数据能否体现想要的结果,实际上也就是一种效度检验。在进行CFA分析的时候,第一步要看模型的拟合效果,这个可以通过GFI,RMSE等一些指标来判断,不好的话就要对题目进行调整,删掉一些题目之类的,直到拟合效果足够好,第二步是要进行内部适配性的检查,1、聚敛性:一个因子及其对应的题目是否合适,或者说几个题目是否确实反映了某个因子;2、区分效度,不同因子是否是有区别的;最后可以进行共同方法偏差分析,这个不做也可以,看情况就好。所以总的来说也就是先判断整体模型好不好,好的话进一步判断模型内部的细节怎么样。

2.CFA步骤

  1. 构建好模型和思路,也就是要确定好模型的结构。
  2. 一般建议先使用EFA对模型结构进行简单的判断,如果EFA便发现有些题目和预设的factor对应的不好,便考虑删除这些题目或对结构进行调整。
  3. 进行CFA,得到模型的各个参数。
  4. 借助GFI,RMSE等参数判断模型的拟合信息;若拟合不好的话,借助MI指标对模型进行修正调整,比如删除对应不好的题项,然后重新跑CFA,直到模型拟合良好。
  5. 进行内部适配性的检验,1.借助AVE和CR以及因子载荷(具体可见SPSSAU的介绍文章或上述的书籍)进行判断;2.借助AVE根号值和相关分析结果进行区分效度的检验。若效果不好,也需要继续做调整。
  6. 进行共同方法偏差分析,看需求是否需要做这个。
  7. 撰写结论。

3.实现

CFA是SEM的一种特例情况,实现的话spss里是不行的,需要使用AMOS等一些专门的sem软件,之前做EFA时看到python的FactorAnalysis里好像也有CFA,不过没仔细看,估计也是可以的,之后可以看看官方文档跑一跑试试。

python实现案例
说明:pyhton里的因子分析包确实可以实现CFA的,但是很多统计性指标都没有的,只给出了因子载荷和一些误差、方差之类的,所以实际上还是不大行,之后我再去查一下看行不行,不过官网似乎就没有这些需要的统计指标。
官网文档

官网给出的案例的及测试数据集

4 AMOS实现

非常具体的过程就不说了,就说一个网上经常有人出现的问题,但是似乎至今也没人给出直接的解答,也就是AMOS结果中没有default model,也就是其实是模型训练失败了,为什么会出现这个情况呢?实际上在output中给了提示了:
在这里插入图片描述
也就是约束不够多,这个所说的约束可以看下下面补充连接中的第二个链接:验证性因子分析中的固定方差法以及固定载荷法,也就是需要给潜变量方差设定一个值或给路径设定一个载荷,此外除了潜变量外,千万不要忘了误差项也要设置的。

此外,CFA还要做内在适配性检验的,amos是没法输出AVE和CR的,不过这两个指标手算也是很简单的。所以实际上python做CFA也还行的,只不过就是人工多算了整体拟合指标罢了,其他也是都一样的。

还有一点需要说明,amos是无法计算出因子得分的,这是一个缺点,当然可以直接来手工计算下,也比较简单的,公式为: 因子得分=因子得分系数(因子得分系数矩阵里相应的值)* 标准化转化后的数据。 除此之外,还可以使用python的因子分析包来计算因子得分,所以可以说pyhton和amos可以进行很好的互补,共同完成CFA。

补充:
一篇关于CFA作用的文章
验证性因子分析中的固定方差法以及固定载荷法
一次操作实例
amos操作介绍

猜你喜欢

转载自blog.csdn.net/qq_39805362/article/details/105755917
今日推荐