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

如何用ggplot绘制带95% CI误差棒的二项式广义混合效应模型图?

二项式广义混合效应模型的ggplot可视化指导

需求概述

基于已拟合的二项式广义混合效应模型(用于预测出勤情况),使用ggplot绘制区分男女群体的拟合曲线,并为两组分别添加95%置信区间,体现Day的影响及Sex:Day交互效应。

模型与数据基础

已拟合的模型代码如下:

library(lme4)

data <- read.csv("test2.csv")

m1 <- glmer(
  Attendance ~ Day + Sex + Sex:Day + (1|AgeClass) + (1|Year) + (1|Plastic), 
  data = data, 
  family = binomial(link = "logit")
)
  • 核心自变量:Day(取值-30至-2,以Day 0为参照)、Sex(M/F)、Sex:Day交互项
  • 随机效应:AgeClass(幼、中、老年)、Year(2014-2018年)、Plastic(个体ID,用于校正重复测量样本)

可视化方向建议

1. 构建预测数据集

  • 使用expand.grid()生成包含所有关键自变量组合的数据集:固定Day为-30到-2的连续序列,Sex包含M和F两类;若仅需展示群体水平趋势(忽略随机效应变异),可将随机效应变量设为典型值(如均值或某一类),后续预测时控制随机效应。

2. 计算预测值与置信区间

推荐两种常用方式:

  • 方式一:使用emmeans包(更便捷的边际均值计算)
    • 用emmeans(m1, ~ Day * Sex, type = "response")计算Day与Sex组合下的边际预测概率(自动转换为响应尺度,即概率)
    • 再用confint()获取95%置信区间,直接得到每个组合的预测值、上下限
  • 方式二:使用predict函数
    • 调用predict(m1, newdata = 你的预测数据集, type = "response", se.fit = TRUE, re.form = ~0),其中re.form = ~0表示忽略随机效应,只计算固定效应的预测;若要包含随机效应,可调整该参数
    • 利用标准误计算95%置信区间:上限 = 预测值 + 1.96*标准误,下限 = 预测值 - 1.96*标准误(注意概率尺度下需确保区间在0-1范围内)

3. ggplot绘图实现

  • 初始化绘图:以预测数据集的Day为x轴,预测概率为y轴,按Sex设置分组颜色或线型
  • 绘制拟合曲线:用geom_line(),对应示例图中的实线
  • 添加置信区间:
    • 若要填充区间:用geom_ribbon(),指定ymin和ymax为置信区间上下限,设置透明度(如alpha=0.2)
    • 若要像示例图那样用上下虚线:分别对置信区间上限和下限调用geom_line(),设置linetype = "dashed"
  • 可选:叠加原始数据点:用geom_jitter()(避免二分类数据点重叠),设置透明度以展示数据分布

关键工具函数参考

  • 数据集生成:expand.grid()
  • 预测计算:emmeans::emmeans()、emmeans::confint()、lme4::predict.merMod()
  • ggplot图层:ggplot()、geom_line()、geom_ribbon()、geom_jitter()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:07:09