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

二分类结局变量GLMM模型诊断咨询:结果解读与代码疑问

二分类结局双随机截距GLMM模型诊断问题

我正在开展一项发病率研究,结局变量为二分类(是/否),构建了包含固定效应(均为分类协变量)与双随机截距的GLMM模型,代码如下:

twoRIM<-glmer(morbidity~co_fuel+wealth+san_class+residencey+education+marital+age+parity+Electricity_avaliablity +education*age+(1|region)+(1|participant_id),family=binomial,data=M)

经AIC比较,该模型为最优模型。随后我运行以下R代码进行模型诊断:

  1. scatter.smooth(fitted(twoRIM),sqrt(abs(resid(twoRIM))),col=6)
  2. qqline(resid(twoRIM))
  3. plot(twoRIM)
  4. qqnorm(resid(twoRIM),main="Residual normal plot",col=4,adj=0.1)
  5. qqnorm(ranef(twoRIM)$"region"[[1]],main="Regional level random effects",col=2,adj=0.1)
  6. qqnorm(ranef(twoRIM)$"participant_id"[[1]],main="Cluster level random effects",col=6,adj=0.1)
  7. plot(fitted(twoRIM),resid(twoRIM),col=4)
  8. qqnorm(resid(twoRIM))

但生成的残差等诊断图与我以往认知差异较大,难以解读细节,怀疑代码参数设置有误,恳请专家提供宝贵建议。


诊断代码优化建议

  • 残差类型选择:默认的resid(twoRIM)对二分类GLMM不是最优选择,建议改用皮尔逊残差(resid(twoRIM, type = "pearson"))或偏差残差(resid(twoRIM, type = "deviance")),这两种残差更适配二分类模型的诊断逻辑。
  • QQ图的正确用法:qqline()需要配合qqnorm()一起运行,单独执行qqline(resid(twoRIM))无法生成完整QQ图,正确写法如下:
    qqnorm(resid(twoRIM, type = "pearson"), main = "Residual normal plot", col = 4, adj = 0.1)
    qqline(resid(twoRIM, type = "pearson"))
    
  • 随机效应诊断简化:查看随机效应时,直接用plot(ranef(twoRIM))即可,该函数会自动生成两个水平随机效应的QQ图和箱线图,比手动提取数据更规范。
  • 拟合值-残差图优化:二分类模型的残差本身具有离散性,建议添加平滑线辅助判断趋势:
    plot(fitted(twoRIM), resid(twoRIM, type = "pearson"), col = 4)
    lines(lowess(fitted(twoRIM), resid(twoRIM, type = "pearson")), col = "red")
    
  • 删除冗余代码:你重复运行了两次qqnorm(resid(twoRIM)),合并成一次并添加QQ线即可。

额外提示

二分类GLMM的残差诊断本身比线性模型更复杂,残差是离散的,QQ图不会像线性模型那样完美贴合直线。重点关注两个核心:

  • 残差是否随拟合值出现系统性趋势(比如U型、递增/递减)
  • 随机效应的QQ图是否大致符合正态分布(允许两端轻微偏离)

内容的提问来源于stack exchange,提问作者Sofonias Derso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:05:21