我被要求从昂贵的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模型。如果这不是适当的问题,我表示歉意。我已经坚持了好几个星期,也不知道该去哪里寻求帮助。