R语言基于协方差的SEM结构方程模型中的拟合指数

在实践中, 因子负载较低(或测量质量较差)的模型的拟合指数要好于因子负载较高的模型。

由Kaizong Ye,Weilong Zhang撰写

例如,如果两个模型具有相同的错误指定级别,并且因子负载为.9的模型的RMSEA可能高于.2,而因子负载为.4的模型的RMSEA可能小于.05。

 本文包含一些图表,可以非常清楚地传达这些结果。

AFIs 是拟合指数的近似优度,其中包括RMSEA和SRMR等绝对拟合指数,以及CFI等相对拟合指数。

使用全局拟合指数的替代方法

×

结构方程这几年热度不减,有必要研究一下它的R语言实现过程,今天先复习一下结构方程的相关理论,参考吉林大学余翠林的ppt

一、  为什么使用SEM?
 1、回归分析有几方面的限制: 
(1)不允许有多个因变量或输出变量 
(2)中间变量不能包含在与预测因子一样的单一模型中 
(3)预测因子假设为没有测量误差 
(4)预测因子间的多重共线性会妨碍结果解释 
(5)结构方程模型不受这些方面的限制

2、SEM的优点: 
(1)SEM程序同时提供总体模型检验和独立参数估计检验; 
(2)回归系数,均值和方差同时被比较,即使多个组间交叉; 
(3)验证性因子分析模型能净化误差,使得潜变量间的关联估计较少地被测量误差污染; 
(4)拟合非标准模型的能力,包括灵活处理追踪数据,带自相关误差结构的数据库(时间序列分析),和带非正态分布变量和缺失数据的数据库。

3、结构方程模型最为显著的两个特点是: 
(1)评价多维的和相互关联的关系; 
(2)能够发现这些关系中没有察觉到的概念关系,而且能够在评价的过程中解释测量误差。 
同时具有联系信息技术吸纳能力: 
SEM能够反映模型中要素之间的相互影响; 
吸纳能力概念作为一个重要的模型要素,难以直接度量,结构方程模型技术能够更为充分地体现其蕴含的要素信息和影响作用。 


MAH编写的拟合指数是全局拟合指数(以下称为GFI),它们检测所有类型的模型规格不正确。但是,正如MAH指出的那样,并非所有模型规格不正确都是有问题的。考虑顺序效应,两个项目可能具有独立于其共享因子的相关误差,这仅仅是因为一个项目跟随另一个项目(序列相关)。CFA(缺省值)中不存在此相关误差将对任何全局拟合指数产生负面影响。此外,全局拟合指数不会告诉你模型错误规格是什么。

 SSV提出了一种调查模型规格不正确的方法,该方法涉及使用修改指数(MI),预期参数变化(EPC),理论和功率分析。EPC是约束关系如果可以由模型自由估计的值,则约束关系将从零变化。我相信研究人员熟悉MI,并经常使用它们来修复模型错误规格,以期获得其审稿人可以接受的GFI。MI和EPC之间的关系是:

M I = (E P C / σ )2MI=(EPC/σ)2


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

SSV建议使用以下框架:

  • (δ )
    • 对于因子载荷,绝对值> .4
    • 对于相关误差,绝对值> .1
  • n c p = (δ / σ )2ncp=(δ/σ)2
  • Ñ Ç pncpχ 2χ2δ

 遵循以下决策规则:

决策规则

 所有这些 在R中实现。 

library(lavaan)

为此,我假设 数据 9个问题,受访者依次回答了x1至x9。

data("HolzingerSwineford1939")
# model syntax for HolzingerSwineford1939 dataset
(syntax <- paste(
  paste("f1 =~", paste0("x", 1:3, collapse = " + ")),
  paste("f2 =~", paste0("x", 4:6, collapse = " + ")),
  paste("f3 =~", paste0("x", 7:9, collapse = " + ")),
  sep = "\n"))

[1] "f1 =~ x1 + x2 + x3\nf2 =~ x4 + x5 + x6\nf3 =~ x7 + x8 + x9"

运行模型,标准化潜在变量,并报告标准化结果:



lavaan (0.5-23.1097) converged normally after  22 iterations

  Number of observations                           301

  Estimator                                         ML
  Minimum Function Test Statistic               85.306
  Degrees of freedom                                24
  P-value (Chi-square)                           0.000

Parameter Estimates:

  Information                                 Expected
  Standard Errors                             Standard

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  f1 =~                                                                 
    x1                0.900    0.081   11.127    0.000    0.900    0.772
    x2                0.498    0.077    6.429    0.000    0.498    0.424
    x3                0.656    0.074    8.817    0.000    0.656    0.581
  f2 =~                                                                 
    x4                0.990    0.057   17.474    0.000    0.990    0.852
    x5                1.102    0.063   17.576    0.000    1.102    0.855
    x6                0.917    0.054   17.082    0.000    0.917    0.838
  f3 =~                                                                 
    x7                0.619    0.070    8.903    0.000    0.619    0.570
    x8                0.731    0.066   11.090    0.000    0.731    0.723
    x9                0.670    0.065   10.305    0.000    0.670    0.665

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  f1 ~~                                                                 
    f2                0.459    0.064    7.189    0.000    0.459    0.459
    f3                0.471    0.073    6.461    0.000    0.471    0.471
  f2 ~~                                                                 
    f3                0.283    0.069    4.117    0.000    0.283    0.283

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .x1                0.549    0.114    4.833    0.000    0.549    0.404
   .x2                1.134    0.102   11.146    0.000    1.134    0.821
   .x3                0.844    0.091    9.317    0.000    0.844    0.662
   .x4                0.371    0.048    7.778    0.000    0.371    0.275
   .x5                0.446    0.058    7.642    0.000    0.446    0.269
   .x6                0.356    0.043    8.277    0.000    0.356    0.298
   .x7                0.799    0.081    9.823    0.000    0.799    0.676
   .x8                0.488    0.074    6.573    0.000    0.488    0.477
   .x9                0.566    0.071    8.003    0.000    0.566    0.558
    f1                1.000                               1.000    1.000
    f2                1.000                               1.000    1.000
    f3                1.000                               1.000    1.000

卡方统计意义重大

请求修改索引。从高到低对它们进行排序。通过请求power = TRUE并设置增量来应用SSV方法。delta = .4,因子加载的标准意味着如果模型中缺少因子加载并且因子加载大于.4。默认情况下,delta = .1。根据SSV的建议,这足以解决相关错误。因此,我仅使用选择相关错误作为输出。



lhs op rhs        mi    epc sepc.all delta   ncp power decision
30  f1 =~  x9 36.411  0.519    0.515   0.1 1.351 0.213  **(m)**
76  x7 ~~  x8 34.145  0.536    0.488   0.1 1.187 0.193  **(m)**
28  f1 =~  x7 18.631 -0.380   -0.349   0.1 1.294 0.206  **(m)**
78  x8 ~~  x9 14.946 -0.423   -0.415   0.1 0.835 0.150  **(m)**
33  f2 =~  x3  9.151 -0.269   -0.238   0.1 1.266 0.203  **(m)**
55  x2 ~~  x7  8.918 -0.183   -0.143   0.1 2.671 0.373  **(m)**
31  f2 =~  x1  8.903  0.347    0.297   0.1 0.741 0.138  **(m)**
51  x2 ~~  x3  8.532  0.218    0.164   0.1 1.791 0.268  **(m)**
59  x3 ~~  x5  7.858 -0.130   -0.089   0.1 4.643 0.577  **(m)**
26  f1 =~  x5  7.441 -0.189   -0.147   0.1 2.087 0.303  **(m)**
50  x1 ~~  x9  7.335  0.138    0.117   0.1 3.858 0.502  **(m)**
65  x4 ~~  x6  6.221 -0.235   -0.185   0.1 1.128 0.186  **(m)**
66  x4 ~~  x7  5.920  0.098    0.078   0.1 6.141 0.698  **(m)**
48  x1 ~~  x7  5.420 -0.129   -0.102   0.1 3.251 0.438  **(m)**
77  x7 ~~  x9  5.183 -0.187   -0.170   0.1 1.487 0.230  **(m)**
36  f2 =~  x9  4.796  0.137    0.136   0.1 2.557 0.359  **(m)**
29  f1 =~  x8  4.295 -0.189   -0.187   0.1 1.199 0.195  **(m)**
63  x3 ~~  x9  4.126  0.102    0.089   0.1 3.993 0.515  **(m)**
67  x4 ~~  x8  3.805 -0.069   -0.059   0.1 7.975 0.806     (nm)
43  x1 ~~  x2  3.606 -0.184   -0.134   0.1 1.068 0.178      (i)
45  x1 ~~  x4  3.554  0.078    0.058   0.1 5.797 0.673      (i)
35  f2 =~  x8  3.359 -0.120   -0.118   0.1 2.351 0.335      (i)

检查决策列。x7和x8被称为错误指定,因为功效低至.193,但MI具有统计学意义。

但是,考虑x2和x7(lhs 55),. 373的低功率,MI很大。是否有一些理论将这两个项目联系在一起?我可以解释建议的相关性吗?

考虑x4和x8(lhs 67),高功率为.806,但MI在统计上不显着,因此我们可以得出结论,没有错误指定。

考虑x1和x4(lhs 45),. 673的低功率,并且MI在统计上不显着,因此这没有定论。

现在,对于因子加载:


lhs op rhs        mi    epc sepc.all delta    ncp power decision
30  f1 =~  x9 36.411  0.519    0.515   0.4 21.620 0.996  *epc:m*
28  f1 =~  x7 18.631 -0.380   -0.349   0.4 20.696 0.995   epc:nm
33  f2 =~  x3  9.151 -0.269   -0.238   0.4 20.258 0.994   epc:nm
31  f2 =~  x1  8.903  0.347    0.297   0.4 11.849 0.931   epc:nm
26  f1 =~  x5  7.441 -0.189   -0.147   0.4 33.388 1.000   epc:nm
36  f2 =~  x9  4.796  0.137    0.136   0.4 40.904 1.000   epc:nm
29  f1 =~  x8  4.295 -0.189   -0.187   0.4 19.178 0.992   epc:nm
35  f2 =~  x8  3.359 -0.120   -0.118   0.4 37.614 1.000     (nm)
27  f1 =~  x6  2.843  0.100    0.092   0.4 45.280 1.000     (nm)
38  f3 =~  x2  1.580 -0.123   -0.105   0.4 16.747 0.984     (nm)
25  f1 =~  x4  1.211  0.069    0.059   0.4 40.867 1.000     (nm)
39  f3 =~  x3  0.716  0.084    0.075   0.4 16.148 0.980     (nm)
42  f3 =~  x6  0.273  0.027    0.025   0.4 58.464 1.000     (nm)
41  f3 =~  x5  0.201 -0.027   -0.021   0.4 43.345 1.000     (nm)
34  f2 =~  x7  0.098 -0.021   -0.019   0.4 36.318 1.000     (nm)
32  f2 =~  x2  0.017 -0.011   -0.010   0.4 21.870 0.997     (nm)
37  f3 =~  x1  0.014  0.015    0.013   0.4  9.700 0.876     (nm)
40  f3 =~  x4  0.003 -0.003   -0.003   0.4 52.995 1.000     (nm)

参见第一行,建议我在f1上加载x9。功效高,MI显着且EPC高于.4,表明这是我们应该注意的某种类型不当。

但是,下一行建议我在f1上加载x7。功效高,MI显着,但EPC为0.38,小于.4,这表明我们认为这种错误指定的程度不足以保证需要修改模型。决定epc:nm的许多建议修改也是如此。

然后是最后一个具有较高功效的组,但MI并没有统计学意义,因此我们可以得出结论,没有错误指定。

SSV使用75%,这是lavaan的默认设置,但可以灵活使用。


请注意,一次只能对模型进行一次更改。EPC和MI在假设其他参数大致正确的情况下计算得出,因此,执行上述步骤的方法是进行一次更改。

我相信这是SSV建议的方法,遵循这种方法将使人们在使用MI时考虑该模型,同时考虑统计能力以检测错误指定。可以解决所有非不确定性的关系(使用理论,修改等),并留下一个模型。


PS:潜在变量建模的另一种方法是PLS路径建模。这是一种基于OLS回归的SEM方法。


  1. McNeish,D.,An,J.,&Hancock,GR(2017)。潜在变量模型中测量质量和拟合指数截止之间的棘手关系。“人格评估杂志”https://doi.org/10.1080/00223891.2017.1281286 
  2. Saris,WE,Satorra,A.,&van der Veld,WM(2009)。测试结构方程模型还是检测错误规格?结构方程模型:多学科期刊,16(4),561–582。https://doi.org/10.1080/10705510903203433 


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds