当我的lavaan模型在AMOS中运行时,为什么不运行呢?

时间:2019-02-07 18:40:03

标签: r r-lavaan amos

我被要求从昂贵的SPSS的AMOS过渡到R,以运行结构方程模型。我们尝试使用lavaan包在R中复制一个特定的(复杂的)SEM模型。在AMOS中运行模型时,可以计算标准误差以及所有其他要求的输出。我将可能性设置为“ wishart”以匹配AMOS方法。但是,当我运行认为是R的lavaan中的完全相同的模型时,lavaan会发出警告(请参阅下文),并且输出奇数。我在lavaan中缺少什么或指定错误?或者,lavaan是否具有与我不知道的AMOS不同的阈值或机制?

我们的模型具有三个与故意反馈回路相关的结果(即非递归)。这些结果中有两个是单项潜能。模型的其余部分包含13个内生变量,其中相当一部分仅由两个项目组成。我们没有设置任何协方差。我们知道多重共线性问题。我们的数据是非正常的(但已经过测试并被接受)。我们列出删除缺失的数据。尽管如此,我们仍然可以在AMOS中运行该模型。尽管我们从未获得过非显着的p值,但确实获得了不错的拟合统计量。

我回到了更基本的模型,以查看是否可以在任何时候让两个软件都运行匹配的模型。在lavaan软件运行到一定程度的情况下(包括所有三个内生变量),其输出与AMOS的输出匹配,并且运行时没有任何警告。

lav_qs_for_latents <- '
  # latent variables
    ELM =~ Q7855_08S + Q7355_04S
    SLM =~ Q8227_06S + Q1266_06S + Q4234_06S + Q9806_15S + Q6979_13S
    SP  =~ Q8117_08S + Q8260_06S
    RE  =~ Q5074_04S + Q8641_13S + Q5704_13S + Q8511_04S
    PD  =~ Q3437_06S + Q9183_04S + Q9292_04S
    TM  =~ Q8179_04S + Q8355_04S + Q4882_06S
    TW  =~ Q4332_11S + Q5113_11S + Q7644_15S
    SW  =~ Q9958_04S + Q2928_06S
    PB  =~ Q1718_06S + Q2593_06S + Q8152_11S
    RC  =~ Q4636_08S + Q5601_06S
    JS  =~ Q5079_04S + Q1344_06S  
    EMP =~ Q8520_06S + Q8385_06S + Q3182_08S
    VMG =~ Q1782_04S + Q5178_04S
    COMMIT =~ Q3373_06S + Q6957_06S
  # regressions
    SLM ~ ELM
    SP ~ ELM + SLM
    RE ~ ELM + SLM + SP
    PD ~ ELM + SLM + SP + RE
    TM ~ SLM + RE
    TW ~ ELM + PD + TM
    SW ~ ELM + SLM + RE + PD + TW
    PB ~ ELM + SP + TW + SW
    RC ~ ELM + SLM + SP + RE + PD + SW + PB
    JS ~ ELM + SLM + PD + TM
    EMP ~ ELM + SLM + RE + PD + RC + JS
    VMG ~ ELM + PD + TM + TW
    Q2327_06S ~ SW + JS + EMP + COMMIT
    Q2958_06S ~ Q2327_06S + ELM + SW + PB + EMP + VMG
    COMMIT ~ Q2327_06S + Q2958_06S + TW + JS + PB + VMG
'
sem_qs_for_latents <- sem(model = lav_qs_for_latents, likelihood = "wishart", sample.cov = datacov, sample.nobs = data_N)

summary(sem_qs_for_latents, standardized=TRUE, rsquare=TRUE)

我希望信息矩阵是可逆的,并且可以计算标准误差。相反,我收到以下警告:

Warning messages:
1: In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,  :
  lavaan WARNING:
    Could not compute standard errors! The information matrix could
    not be inverted. This may be a symptom that the model is not
    identified.

2: In lav_object_post_check(object) :
  lavaan WARNING: some estimated lv variances are negative

3: In lavaan::lavaan(model = lav_qs_for_latents, sample.cov = datacov,  :
  lavaan WARNING: not all elements of the gradient are (near) zero;
                  the optimizer may not have found a local solution;
                  use lavInspect(fit, "optim.gradient") to investigate

lavInspect(sem_qs_for_latents, "optim.gradient")为我提供了除以下各项以外的所有值0.000:

TW~ELM = 0.005; TW~PD = 0.008; TW~TM = 0.002; JS~ELM = -0.002; JS~SLM = -0.002; JS~PD = -0.001; JS~TM = -0.001

我不知道如何上传协方差矩阵,但是我不认为这是问题所在,因为我可以在lavaan上对该协方差矩阵运行更多基本模型,并且输出匹配相应的AMOS模型。如果这不是适当的问题,我表示歉意。我已经坚持了好几个星期,也不知道该去哪里寻求帮助。

0 个答案:

没有答案