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

在R中绘制调节回归预测值:含调节与无调节回归置信区间绘图

调节回归与无调节回归的预测值及置信区间可视化(R语言实现)

嘿,这就帮你搞定这个可视化需求,咱们一步步来实操:

1. 先搞定无调节回归的基础绘图

首先用你给的原始数据构建无调节回归模型,补全预测部分的代码,同时计算95%置信区间:

# 先加载ggplot2包,后续可视化要用
library(ggplot2)

# 你的原始数据
dependent <- c(0.0357264300, 0.0127688421, 0.0574075955, 0.0478508616, 0.8182810990, 0.2923778764, 0.0002984776, 0.0175975337, 0.1282831072, 0.1496447041, 0.0175852979)
independent <- c(13, 9, 54, 16, 1623, 120, 6, 30, 50, 117, 36)

# 构建无调节回归模型
model_no_mod <- lm(dependent ~ independent)

# 生成自变量序列:用数据的极值范围更合理,避免外推过多
newX <- seq(min(independent), max(independent), length.out = 100)

# 计算预测值+95%置信区间
pred_no_mod <- predict(model_no_mod, newdata = data.frame(independent = newX), interval = "confidence")

# 整理成ggplot能用的数据框
df_no_mod <- data.frame(
  independent = newX,
  fit = pred_no_mod[, "fit"],
  lwr = pred_no_mod[, "lwr"],
  upr = pred_no_mod[, "upr"],
  model_type = "无调节回归"
)

2. 加入调节变量构建交互模型

这里我们模拟一个二分调节变量(如果你的调节变量是连续的,后面会说明调整方法),构建包含交互项的调节回归模型:

# 模拟二分调节变量(0和1,固定随机种子保证结果可重复)
set.seed(123)
moderator <- sample(c(0, 1), length(dependent), replace = TRUE)

# 构建调节回归模型(independent*moderator会自动包含主效应+交互项)
model_mod <- lm(dependent ~ independent * moderator)

如果你的调节变量是连续型的,建议取均值、均值+1标准差、均值-1标准差三个水平来绘制预测曲线,这样更符合调节效应可视化的规范。

3. 计算调节回归的预测值与置信区间

需要生成包含自变量和调节变量不同水平的组合数据,再计算预测结果:

# 生成自变量+调节变量的所有组合
df_mod <- expand.grid(
  independent = newX,
  moderator = c(0, 1)  # 如果是连续调节变量,这里换成三个水平值即可
)

# 计算调节回归的预测值+置信区间
pred_mod <- predict(model_mod, newdata = df_mod, interval = "confidence")

# 合并数据并标记模型类型
df_mod <- cbind(df_mod, pred_mod)
df_mod$model_type <- paste0("调节回归(moderator = ", df_mod$moderator, ")")

4. 合并所有结果,绘制可视化图

把无调节和调节回归的预测数据合并,用ggplot2画出原始数据点、拟合线和置信区间阴影:

# 合并无调节和调节的预测数据
df_all <- rbind(df_no_mod, df_mod)

# 绘制最终可视化图
ggplot() +
  # 绘制原始数据点,灰色半透明避免干扰拟合线
  geom_point(aes(x = independent, y = dependent), color = "gray50", alpha = 0.7) +
  # 绘制各模型的拟合线
  geom_line(data = df_all, aes(x = independent, y = fit, color = model_type), linewidth = 1) +
  # 绘制置信区间阴影
  geom_ribbon(data = df_all, aes(x = independent, ymin = lwr, ymax = upr, fill = model_type), alpha = 0.2) +
  # 美化标签和主题
  labs(
    x = "自变量(independent)",
    y = "因变量(dependent)",
    title = "调节回归与无调节回归的预测值及置信区间对比",
    color = "模型类型",
    fill = "模型类型"
  ) +
  theme_minimal()

运行这段代码后,你会得到一张清晰的对比图:灰色点是原始数据,不同颜色的线是各模型的拟合预测,阴影部分是对应的95%置信区间,能直观看到调节效应带来的差异。

内容的提问来源于stack exchange,提问作者N.Crouch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:07:05