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

如何在ggplot中添加nlme模型拟合线并显示置信区间?

解决nlme模型拟合线置信区间不显示的问题

问题根源

你当前代码中使用stat_smooth(method = "lm")是在ggpredict_data基础上重新拟合了普通线性模型,而非调用ggpredict已计算好的置信区间数据,因此设置se = TRUE不会生效。ggpredict输出结果已包含预测值(predicted)以及置信/预测区间的上下限(lower和upper列),直接用这些数据绘图即可。

修正后的绘图代码

# 生成模型预测及区间数据
ggpredict_data <- ggpredict(my_model, c("time", "group"), type = "re")

ggplot() +
  # 绘制置信区间填充区域
  geom_ribbon(data = ggpredict_data, 
              aes(x = x, ymin = lower, ymax = upper, fill = group),
              alpha = 0.2) +  # 半透明填充,避免遮挡原始数据点
  # 绘制模型拟合线
  geom_line(data = ggpredict_data, 
            aes(x = x, y = predicted, colour = group),
            linewidth = 1) +
  # 绘制原始数据点
  geom_point(data = my_data,
             aes(x = time, y = metric, colour = group)) +
  labs(x = "time", y = "metric")  # 可根据需求修改坐标轴标签

关键说明

  • geom_ribbon是绘制区间填充的专用图层,通过ymin和ymax映射ggpredict_data中的lower和upper列生成置信/预测区间。
  • type = "re"表示包含随机效应的预测区间,若需要群体水平的置信区间,可改为type = "fe",ggpredict会自动计算对应上下限。
  • 调整alpha参数可改变填充区域透明度,让原始数据点更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:22:12