如何解决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 举报,一经查实,本站将立刻删除。