You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lavaan包做CFA分析时报错missing observed variables: ..constant如何解决

报错原因分析

核心触发原因是模型定义语法存在笔误:你在定义ROCI因子的加载项时,将v31遗漏了变量前缀v,写成了纯数字31。lavaan不会将纯数字识别为数据集里的观测变量,会默认把它解析为固定取值的常数项,而你的输入数据集不存在对应的常数变量,因此触发了missing observed variables in dataset: ..constant..报错。
除此之外你代码还存在一处隐性问题:拟合结果赋值给了fit对象,但后续summary调用的是不存在的fit1,待当前报错解决后运行到这一步也会触发对象未找到的报错。

排查解决步骤
  • 修正模型语法的笔误:把加载项末尾的+31替换为+v31,确保所有观测变量名和数据集列名完全一致
  • 提前核对变量存在性:运行colnames(STR_Historical_Data),确认v4、v6、v7、v8、v11、v17、v18、v19、v20、v22、v24、v26、v29、v31、v32都在数据集列名列表中,排除其他拼写错误
  • 修正summary的调用对象:把summary(fit1, fitmeasures=TRUE)中的fit1替换为实际赋值的fit
  • 重新运行全量代码即可完成CFA拟合

修正后完整代码示例

# CFA Model
model1 <- '
ROCI =~ v4+v6+v7+v8+v11+v17+v18+v19+v20+v22+v24+v26+v29+v31+v32'
fit <- cfa(model1, data = STR_Historical_Data)
summary(fit, fitmeasures=TRUE)

内容的提问来源于stack exchange,提问作者Mercy Sanchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:30:04