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

如何绘制回归剔除A、B协变量效应后的Y与X关联图?

方法1:手动计算残差绘制偏回归图

你可以将Y、X分别与协变量A、B做回归,提取两者的残差(即排除A、B影响后的剩余变异),再对残差做散点拟合即可,该方法得到的拟合线斜率和你原有全模型lm(Y ~ A + B + X)中X的回归系数完全一致。
示例代码如下:

# 计算Y剔除A、B效应后的残差
resid_y <- lm(Y ~ A + B, data = data)$residuals
# 计算X剔除A、B效应后的残差
resid_x <- lm(X ~ A + B, data = data)$residuals
# 合并到原数据框
data <- cbind(data, resid_x, resid_y)

# 绘制校正后的关联图
ggplot(data = data, aes(x = resid_x, y = resid_y)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(x = "X(校正A、B效应后)", y = "Y(校正A、B效应后)")

方法2:使用effects包快速生成校正拟合图

如果不需要呈现校正后的散点,只需要保留原始散点+校正协变量后的拟合线,可以直接用effects包提取校正后的预测值绘图,操作更便捷:

# 安装加载包
install.packages("effects")
library(effects)

# 基于全模型计算校正A、B到均值水平后X对应的Y预测值
x_effect <- effect("X", lm(Y ~ A + B + X, data = data))
effect_df <- as.data.frame(x_effect)

# 绘图
ggplot() +
  # 原始数据散点,可按需调整透明度或删除
  geom_point(data = data, aes(x = X, y = Y), alpha = 0.3) +
  # 校正后的拟合线
  geom_line(data = effect_df, aes(x = X, y = fit), color = "blue", linewidth = 1) +
  # 可选:添加拟合线的95%置信区间
  geom_ribbon(data = effect_df, aes(x = X, ymin = lower, ymax = upper), alpha = 0.2, fill = "blue")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:15:04