负二项GLMM绘图问题:无法生成按Bioma分组的temp拟合曲线
负二项GLMM可视化代码修正方案
代码存在4个核心问题:
- 数据集名称不统一:你定义的数据集为
myds,但模型拟合、绘图调用时错误使用了不存在的DataBase对象 - 美学映射位置错误:
group = Bioma等分组参数没有放在aes()内部,ggplot无法识别分组规则 - 图层参数顺序错误:
geom_point没有显式指定data=前缀,参数匹配错误导致观测点渲染异常 - 预测点数量不足:
ggpredict默认对连续变量仅取6个离散预测点,导致二次项拟合曲线形态生硬
修正后完整可运行代码:
# 加载依赖包 library(lme4) library(ggplot2) library(ggeffects) # 读取处理数据集 myds <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/my_glmm_dataset.csv") myds <- myds[,-c(3)] # 拟合负二项GLMM,修正数据集引用名称 m.laden.1 <- glmer.nb(ladenant ~ Bioma + poly(temp,2) + scale(UR) + (1 | formigueiro), data = myds) # 生成预测值,指定temp取全部观测值作为预测点,保证曲线平滑 mydf <- ggpredict(m.laden.1, terms = c("temp [all]", "Bioma")) # 绘图,修正美学映射和图层参数 ggplot(mydf, aes(x = x, y = predicted, color = Bioma, fill = Bioma, group = Bioma)) + # 叠加原始观测点 geom_point(data = myds, aes(x = temp, y = ladenant), alpha = 0.5) + # 绘制分组拟合线 geom_line(linewidth = 1) + # 绘制分组置信区间 geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.1, color = NA) + # 优化轴标签 labs(x = "温度(temp)", y = "预测ladenant数量") + theme_bw()
效果说明:
修正后会自动为3种Bioma生成不同颜色的二次拟合曲线和对应置信区间,二次项的倒U型曲线形态会自然平滑,同时背景叠加所有原始观测点。
内容的提问来源于stack exchange,提问作者Leprechault
相关产品推荐
相关产品推荐

