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

缩放回归变量后如何用visreg绘制预测响应、95%CIs及条件图?

关于visreg处理缩放变量及绘制预测响应的问题

1. 缩放变量后能否用visreg绘制条件图?

完全可以。visreg支持处理经scale()缩放的自变量,只要模型拟合正常,就能生成包含预测曲线、95%置信区间、偏残差的条件图,核心注意点如下:

  • 模型中使用scale(x1)/scale(x2)不影响visreg的绘图逻辑,工具会自动识别缩放后的变量作为x轴
  • 通过scale="response"参数,可将链接尺度的预测结果转换回原始响应尺度(对应你模型的负二项计数尺度)
  • 偏残差的展示通过partial=TRUE实现,会自动计算并绘制偏残差点
  • 95%置信区间默认自动以阴影区域展示,无需额外开启

针对你的示例代码,优化后的可运行版本:

# 安装并加载所需包
install.packages(c("lme4", "visreg"))
library(lme4)
library(visreg)

# 原始数据
y <- c(18, 0, 2, 0,  0,  0,  2,  0,  0,  1,  7,  0,  0,  0,  0,  0,  0,  0,  0)
x1 <- c(501, 1597, 1156, 1134, 1924,  507, 1022,  0,  92, 1729, 85, 963, 544, 1315, 2250, 1366,  458,  385,  930)
x2 <- c(0,  92,  959, 1146,  900,  0,  276, 210,  980, 8, 0, 473, 0, 255, 1194, 542, 983, 331,  923)
x3 <- c("site1", "site1", "site2","site2","site3","site3","site4","site4","site5","site5","site6","site7","site8","site9","site10","site11","site12","site13","site14")
offset_1 <- c(59, 34, 33, 35, 60, 58, 59, 33, 34, 61, 58, 58, 55, 26, 26, 18, 26, 26, 26)
data_1 <- data.frame(y,x1,x2,offset_1)

# 拟合包含缩放变量的负二项混合模型
m1 <- glmer.nb(y ~ -1 + scale(x1) + scale(x2) + (1|x3) + offset(log(offset_1)), data=data_1)

# 绘制包含所有需求元素的条件图
visreg(m1, "x1",  # 直接指定原始变量名,visreg会自动匹配模型中的缩放版本
       scale="response",  # 展示原始响应尺度的结果
       cond=list(offset_1=1),  # 固定offset值
       partial=TRUE,  # 显示偏残差
       rug=2,  # 添加x轴数据分布rug图
       line=list(lwd=0.5, col="black"),  # 预测曲线样式
       points=list(cex=1.4, lwd=0.1, col="black", pch=21),  # 偏残差点样式
       fill=list(col="lightgray"))  # 置信区间填充色,增强可读性

2. 如何用visreg绘制预测响应及95%置信区间?

若只需展示预测曲线和95%置信区间,去掉partial=TRUE参数即可:

# 仅绘制预测曲线与95%置信区间
visreg(m1, "x1",
       scale="response",
       cond=list(offset_1=1),
       partial=FALSE,  # 关闭偏残差展示
       rug=2,
       line=list(lwd=1, col="darkblue"),
       fill=list(col="lightblue"))

如果需要按分组(如你的x3随机效应)分别绘制预测曲线,可使用by参数:

# 按site分组绘制预测曲线与置信区间
visreg(m1, "x1",
       scale="response",
       cond=list(offset_1=1),
       by="x3",
       line=list(lwd=0.8),
       fill=list(col="lightgray", alpha=0.5))  # 调整CI透明度,避免重叠杂乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:51:13