超加工食品购买研究中调查数据拟合线性混合模型的收敛问题求助
- 标准化权重变量
你当前使用的人口投影因子量级普遍较大,会放大损失函数的数值波动进而引发收敛警告。可先对权重做标准化处理:将所有样本的权重除以权重的均值,保证权重的相对比例不变的前提下,将平均权重调整为1,避免数值尺度过大带来的估计问题。 - 更换优化器或拟合工具
你当前使用的optimx包下的nlminb优化器对加权混合模型的适配性一般,可以优先尝试更换为lme4自带的bobyqa优化器,同时调大最大迭代次数:
lmer(per_capita_year ~ irsad5.factor*year_record + lifestage_factor + num_child + num_adult + region_factor + (1|hhid), data = want.year, subset=(ultra_process=="Ultra-processed"), weights=I(factor/mean(factor, na.rm=T)), control=lmerControl(optimizer = "bobyqa", optCtrl = list(maxfun=100000)))
如果仍然有警告,可以换用glmmTMB包拟合模型,其语法和lmer几乎一致,对加权混合模型的收敛性优化更好。
- 检查随机效应的合理性
如果你的样本中存在大量仅出现一次的家庭(即单期观测的hhid),随机截距的方差估计会非常不稳定,也会触发收敛警告。如果你的研究核心是群体层面的超加工食品购买趋势,而非家庭异质性,可以直接用普通加权线性回归,再聚类到hhid计算稳健标准误来控制同家庭的自相关,估计结果会更稳定。 - 排查自变量共线性与稀疏分组
首先对核心交互项irsad5.factor*year_record做交叉频次统计,如果存在某类社会经济群体在某年份的样本量低于30的稀疏分组,要么合并同类社会经济分组,要么剔除这部分稀疏样本,避免系数估计不稳定。另外已经做了变量重缩放的前提下,建议对连续变量year_record做中心化处理(比如减去最小年份值,使年份起始值为0),降低交互项的多重共线性。 - 验证警告的严重程度
如果更换优化器后仍然有收敛警告,可以同时用2-3种不同的优化器拟合模型,对比输出的固定效应系数估计值,如果不同方法得到的系数差异小于1%,说明这个警告只是数值迭代的误差,不影响结果可靠性,可以直接忽略。
内容的提问来源于stack exchange,提问作者Polly
相关产品推荐
相关产品推荐

