验证性因子分析

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

1.个人理解

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

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,不过没仔细看,估计也是能够的,以后能够看看官方文档跑一跑试试。git

python实现案例
说明:pyhton里的因子分析包确实能够实现CFA的,可是不少统计性指标都没有的,只给出了因子载荷和一些偏差、方差之类的,因此实际上仍是不大行,以后我再去查一下看行不行,不过官网彷佛就没有这些须要的统计指标。
官网文档github

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

4 AMOS实现

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

此外,CFA还要作内在适配性检验的,amos是无法输出AVE和CR的,不过这两个指标手算也是很简单的。因此实际上python作CFA也还行的,只不过就是人工多算了总体拟合指标罢了,其余也是都同样的。ide

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

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