来自R和来自MPLUS

时间:2018-08-09 20:46:52

标签: r factor-analysis r-lavaan

我正在与CFA一起上关于确认性因素分析MPlus的课程;但是,我非常热衷于学习如何使用R-lavaan。我已经使用MPLUS运行了一个模型,并使用R lavaan运行了相同的模型。该模型具有三个潜在变量和十个指标。所有参数均设置为免费。模型估计通常在RMPlus中终止。 this GitHub repository中提供了R代码,MPlus输入文件和.dat文件。

当我查看输出时,一切看起来都一样。在大多数情况下,值是相同的。如果不是,则它们与小数点后两位或三位小数不同。这适用于:

  • 组数
  • 观察数
  • 因变量,自变量和潜变量的数量
  • 丢失的数据模式数量
  • 可用参数数量
  • 对数似然
  • 信息标准(模型拟合的卡方检验, RMSEA,CFI / TLI,适用于基准模型的模型卡方检验, 和SRMR)
  • 所有模型结果(例如,潜在变量和自变量, 既未标准化又完全标准化)
  • R平方

一个重要的区别是估计量:MPlus中的是MLR中的是FIML。我首先都从ML开始,但是在R中,我得到的所有估计都与MPlus不同。我猜这是由于RMPlus处理NAs的方式不同。

但是,当我查看修改索引时,MPlus的索引比R多得多,并且值明显不同。如果将R和MPlus中的修改索引的最小值都固定为10,则R中得到8个索引,而MPlus中得到29。

这是我从MPlus得到的:

ON/BY Statements

IPEQOPT  ON TRACO    /
TRACO    BY IPEQOPT               25.739    -0.337     -0.210       -0.226
IMPENV   ON TRACO    /
TRACO    BY IMPENV                33.457     0.446      0.278        0.295
IMPENV   ON ATTI     /
ATTI     BY IMPENV                24.846    -0.203     -0.126       -0.133

ON Statements

TRACO    ON IPEQOPT               22.308    -0.131     -0.210       -0.195
TRACO    ON IMPENV                19.577     0.168      0.270        0.254
ATTI     ON IMPENV                19.133    -0.117     -0.189       -0.178
UNIV     ON IPEQOPT               16.226     0.133      0.292        0.272
IMPTRAD  ON IMSMETN               10.895    -0.112     -0.112       -0.070
IMPTRAD  ON IPUDRST               12.675    -0.106     -0.106       -0.081
IMPTRAD  ON IMPENV                31.976     0.176      0.176        0.133
IPEQOPT  ON IMPTRAD               22.316    -0.089     -0.089       -0.120
IPEQOPT  ON IPBHPRP               15.872    -0.098     -0.098       -0.119
IPUDRST  ON IMPTRAD               15.505    -0.076     -0.076       -0.100
IPUDRST  ON IMDFETN               10.021     0.090      0.090        0.077
IPUDRST  ON IMPENV                16.234    -0.197     -0.197       -0.194
IMPENV   ON IMPTRAD               68.801     0.161      0.161        0.214
IMPENV   ON IMSMETN               15.721    -0.114     -0.114       -0.095
IMPENV   ON IMDFETN               23.385    -0.144     -0.144       -0.124
IMPENV   ON IMPCNTR               12.216    -0.091     -0.091       -0.083
IMPENV   ON IPUDRST               16.231    -0.170     -0.170       -0.172

WITH Statements

IPEQOPT  WITH TRACO               22.309    -0.086     -0.138       -0.170
IPEQOPT  WITH UNIV                16.228     0.088      0.193        0.237
IPEQOPT  WITH IMPTRAD             12.171    -0.080     -0.080       -0.094
IPUDRST  WITH IPMODST             11.775     0.085      0.085        0.091
IPUDRST  WITH IMPTRAD             16.337    -0.094     -0.094       -0.110
IMPENV   WITH TRACO               19.576     0.098      0.157        0.206
IMPENV   WITH ATTI                19.135    -0.068     -0.110       -0.144
IMPENV   WITH IMPTRAD             52.625     0.166      0.166        0.209
IMPENV   WITH IPUDRST             16.230    -0.114     -0.114       -0.183

这就是我从R得到的:

modificationindices(cfa4, minimum.value = 10)

> modificationindices(cfa4, minimum.value = 10)
        lhs op     rhs     mi    epc sepc.lv sepc.all sepc.nox
43    TraCo =~ ipeqopt 25.742 -0.337  -0.210   -0.226   -0.226
45    TraCo =~  impenv 33.458  0.446   0.278    0.295    0.295
52     Atti =~  impenv 24.847 -0.203  -0.126   -0.133   -0.133
67  ipmodst ~~ ipudrst 11.776  0.085   0.085    0.091    0.091
74  imptrad ~~ ipeqopt 12.171 -0.080  -0.080   -0.094   -0.094
75  imptrad ~~ ipudrst 16.336 -0.094  -0.094   -0.110   -0.110
76  imptrad ~~  impenv 52.626  0.166   0.166    0.209    0.209
104 ipudrst ~~  impenv 16.227 -0.114  -0.114   -0.183   -0.183

如果我将R中的最小值降低到4,则我有21个索引

modificationindices(cfa4, minimum.value = 4)

> modificationindices(cfa4, minimum.value = 4)
        lhs op     rhs     mi    epc sepc.lv sepc.all sepc.nox
43    TraCo =~ ipeqopt 25.742 -0.337  -0.210   -0.226   -0.226
45    TraCo =~  impenv 33.458  0.446   0.278    0.295    0.295
47     Atti =~ imptrad  6.279 -0.114  -0.071   -0.056   -0.056
49     Atti =~ ipbhprp  4.088  0.085   0.052    0.046    0.046
50     Atti =~ ipeqopt  6.187  0.094   0.058    0.062    0.062
51     Atti =~ ipudrst  9.056  0.117   0.072    0.076    0.076
52     Atti =~  impenv 24.847 -0.203  -0.126   -0.133   -0.133
57     Univ =~ imsmetn  7.344 -0.094  -0.043   -0.054   -0.054
59     Univ =~ impcntr  4.496  0.084   0.038    0.045    0.045
65  ipmodst ~~ impcntr  7.733  0.046   0.046    0.071    0.071
67  ipmodst ~~ ipudrst 11.776  0.085   0.085    0.091    0.091
71  imptrad ~~ imsmetn  5.735 -0.032  -0.032   -0.063   -0.063
74  imptrad ~~ ipeqopt 12.171 -0.080  -0.080   -0.094   -0.094
75  imptrad ~~ ipudrst 16.336 -0.094  -0.094   -0.110   -0.110
76  imptrad ~~  impenv 52.626  0.166   0.166    0.209    0.209
86  ipbhprp ~~ impcntr  6.967 -0.034  -0.034   -0.079   -0.079
87  ipbhprp ~~ ipeqopt  4.281 -0.041  -0.041   -0.067   -0.067
97  imdfetn ~~ ipudrst  5.444  0.023   0.023    0.114    0.114
99  impcntr ~~ ipeqopt  4.448  0.025   0.025    0.055    0.055
102 ipeqopt ~~ ipudrst  8.411  0.068   0.068    0.102    0.102
104 ipudrst ~~  impenv 16.227 -0.114  -0.114   -0.183   -0.183

在这21个中,R-lavaan和MPlus输出中只有三个值相同(至小数点后两位),它们是MPlus中的ON / BY STATEMENTS。在R和MPlus中共有的7个变量中,只有一个IPUDRST ON IMPENV具有相同的值(再次至小数点后三位),另外六个TRACO ON IPEQOPT, TRACO ON IMPENV, ATTI ON IMPENV, IMPTRAD ON IMSMETN, IMPTRAD ON IPUDRST, IMPTRAD ON IMPENV则完全关闭。其余的甚至没有共同点。

关于我的代码中实际上可能有什么错误的任何建议?估计修改索引的两种算法在RMPlus中是否可以如此不同以提供这样的输出?还有什么?

谢谢

Manolo

更新2018年8月11日

测试不变性时,我遇到了同样的问题。在R中测试不变性时,得到的结果与MPlus中相同。在RMPlus中,配置不变性和度量不变性的修改索引均小于10,因此不会报告。但是,对于标量不变性,我在MPlus中有十个修改索引,它们的值大于十,而在R中我没有任何修改索引。

0 个答案:

没有答案