首页 > 解决方案 > 熔岩错误 - 没有计算标准错误 - R

问题描述

我创建了一份问卷。该问卷由四个子量表组成,测量我感兴趣的变量的 4 个不同组成部分。每个分量表由 3 个项目组成。每个项目是一个 6 点量表(然后每个项目的响应包含在 1 到 6 之间)。

这是我的数据样本,每一行都是一个主题:

> dput(DF[1:10, 7:18 ]) 
structure(list(I1 = c(3, 6, 6, 4, 5, 5, 3, 3, 5, 4), I2 = c(3, 
5, 5, 6, 4, 5, 2, 5, 5, 4), I3 = c(1, 4, 2, 3, 3, 4, 4, 1, 5, 
2), I4 = c(5, 6, 6, 6, 5, 6, 6, 6, 6, 6), I5 = c(5, 6, 5, 5, 
6, 6, 5, 6, 5, 5), I6 = c(4, 6, 6, 6, 5, 5, 6, 4, 5, 4), I7 = c(3, 
6, 5, 6, 4, 4, 3, 5, 3, 4), I8 = c(4, 6, 5, 5, 4, 4, 3, 5, 3, 
5), I9 = c(4, 6, 4, 4, 5, 5, 5, 4, 4, 3), I10 = c(2, 4, 5, 6, 
3, 2, 4, 1, 2, 4), I11 = c(3, 3, 4, 6, 4, 6, 5, 5, 2, 3), I12 = c(3, 
6, 6, 6, 5, 4, 4, 4, 5, 5)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"))

217 名参与者完成了这份问卷(没有缺失值),我想测试我的数据是否支持我的 CFA 模型。

这是我的代码:

library(lavaan)

model <- "
Factor1 =~ I1 + I2 + I3
Factor2 =~ I4 + I5 + I6
Factor3 =~ I7 + I8 + I9
Factor4 =~ I10 + I11 + I12
"

fit <- cfa(model, data = DF)
summary(fit, fit.measures = TRUE, standardized = TRUE)

但是当我运行它时,我有以下错误,我不明白为什么。这是错误消息:

lavaan 警告:优化器警告尚未找到解决方案!
lavaan 警告:优化器警告尚未找到解决方案!
lavaan 警告:无法计算标准误差!信息矩阵不能倒置。这可能是模型未识别的症状。
lavaan 警告:一些估计的 ov 方差为负
lavaan 警告:潜在变量的协方差矩阵
不是正定的;使用 lavInspect(fit, "cov.lv") 进行调查。

这是我对 lavInspect 的看法:

> lavInspect(fit, "cov.lv")
        Factr1   Factr2   Factr3   Factr4  
Factor1 7797.062                           
Factor2    0.248    0.451                  
Factor3    0.215    0.182    0.289         
Factor4   -0.254   -0.159    0.280 9883.238

知道因子 1 和因子 4 的这个巨大的 cov 可以用 lavaan 显示的 I1 (-7795.413) 和 I10 (-9881.204) 的非常高的方差来解释,但是如果我直接向 R 询问 var(DF$I1) 和 var( DF$I10),结果大不相同。

Variances:
                   Estimate   Std.Err  z-value  P(>|z|)   Std.lv   Std.all 
   .I1             -7795.413       NA                   -7795.413 -4729.827
   .I2                 1.684       NA                       1.684     1.000
   .I3                 1.535       NA                       1.535     1.000
   .I4                 0.807       NA                       0.807     0.641
   .I6                 1.859       NA                       1.859     0.884
   .I7                 1.370       NA                       1.370     0.826
   .I8                 1.201       NA                       1.201     0.832
   .I9                 1.681       NA                       1.681     0.950
   .I10            -9881.204       NA                   -9881.204 -4859.350
   .I11                2.215       NA                       2.215     1.000
   .I12                0.784       NA                       0.784     1.000


> var(DF$I1)
[1] 1.683052
> var(DF$I10)
[1] 1.966163



 

有谁知道为什么它不起作用?是因为我的模型不够适合我的数据吗?

先感谢您!

标签: rr-lavaan

解决方案


看看这个熔岩讨论。具有数千个因子方差和其他小于 1 的因子方差往往会给估计过程带来问题。

我假设某些变量(尤其是因子 1 和 4 的变量)的范围从 1 到 50,而其他变量的范围可能从 1 到 5。如果是这种情况,我建议您在之前将变量转换为相同的边距CFA 估计,例如,

vars <- c("I1", "I2", "I3", "I10", "I11", "I12")
DF[, vars] <- DF[, vars] / 10

推荐阅读