微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

lavaan错误-未计算标准错误-R

如何解决lavaan错误-未计算标准错误-R

我创建了一个调查表。该问卷由四个子量表组成,这些量表测量了我感兴趣的变量的4个不同部分。每个分量表由3个项目组成。每个项目的得分均为6分制(然后每个项目的响应介于1到6之间)。

这是我的数据示例,每一行都是一个主题

> dput(DF[1:10,7:18 ]) 
structure(list(I1 = c(3,6,4,5,3,4),I2 = c(3,2,I3 = c(1,1,2),I4 = c(5,6),I5 = c(5,5),I6 = c(4,I7 = c(3,I8 = c(4,I9 = c(4,3),I10 = c(2,I11 = c(3,I12 = c(3,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

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

提前谢谢!

解决方法

看看这个lavaan discussion。成千上万的因子方差小于1往往会给估计过程带来问题。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。