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

lavaan分析有序因子异常、模型不收敛及负方差问题排查与解决

lavaan运行SEM时模型不收敛、观测变量负方差问题排查

问题根因

经排查确认异常触发逻辑:单指标变量必须为数值型,不可设置为因子类型。此前为计算误差方差的固定取值,曾将单指标转换为整数类型,后续运行新模型时未将其改回数值型、误保留为因子类型,直接触发运行异常。

问题现象

使用R语言lavaan包运行结构方程模型(Structural Equation Model, SEM)进入最终模型构建阶段后,不同模型交替出现两类报错:

  • 优化器提示未找到有效解,模型不收敛
  • 输出警告提示部分观测变量(observed variable, ov)的估计方差为负

异常自误操作数据框后重新上传、处理数据节点开始出现,排查初期确认数据处理语法、lavaan软件版本与此前模型正常运行时完全一致,有历史运行输出可佐证。初期检查变量方差时发现因子类变量的方差显示为NA,因未完全掌握lavaan对观测变量阈值的估计逻辑,一度无法定位问题点。

已确认的排查信息

  • 历史正常运行的模型拟合效果优异,稳健CFI介于0.982~0.999,其余拟合指标均符合要求
  • 检查数据框可见,涉事变量均为水平数设置正确的有序因子
  • 若将全量数据集转换为数值格式,采用相同WLSMV估计器可正常运行,但此时有序变量会被当作连续变量处理,估计结果存在偏差,不符合分析需求
  • 设置std.lv=TRUE虽可提升运行稳定性,但不适用于当前的单指标建模场景

初期疑点预判

初期判断异常可能与单指标设置有关:模型勉强输出结果时,单指标的估计结果完全错误,其余测量模型部分的估计结果处于合理范围;但建模逻辑未做任何改动——每个单指标对应1个潜变量(latent variable, lv),载荷固定为1,指标误差方差按预先计算的取值固定。此外数据中包含多个标准化变量,其中1个来自Rasch模型(logit量尺)的变量均值为负,但相关设置也未做调整。

复现代码与报错示例

> #M0: Simple causal
> Model0 <- '#Measurement
+ RiskPercep =~ WhenHarm + Worry + HarmYou + HarmComm + HarmUS + HarmDev
+ STEMExp =~ STEMRec + STEMClass
+ Belief =~ 1*CCBelief
+ Politics =~ 1*Liberal
+ 
+ #fixing error
+ CCBelief ~~ .092*CCBelief
+ Liberal ~~ .095*Liberal
+ 
+ #regression
+ RiskPercep ~ Belief + CIScore + Politics
+ CIScore ~ STEMExp
+ Belief ~ CIScore + Politics'
> Model0Fit <- sem(Model0, data=ClimateSurveyImp)
summary(Model0Fit, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)
----------
> Model9Fit <- sem(Model9, data=ClimateSurveyImp)
Warning message:
In lav_object_post_check(object) :
  lavaan WARNING: some estimated ov variances are negative

> Model0Fit <- sem(Model0, data=ClimateSurveyImp)
Warning message:
In lavaan::lavaan(model = Model0, data = FinalData, model.type = "sem",  :
  lavaan WARNING:
    the optimizer warns that a solution has NOT been found!
> summary(Model0Fit, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)
lavaan 0.6-11 did NOT end normally after 2542 iterations
** WARNING ** Estimates below are most likely unreliable

修复方法

仅需将误设为因子类型的单指标变量转换回数值型,其余需要按有序分类处理的观测变量保留因子类型设置,重新运行模型即可:调整后不会再出现不收敛、负方差警告,同时可保证有序变量按分类变量规则估计,结果无偏差。

内容的提问来源于stack exchange,提问作者Steph Courtney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:30:44