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

如何绘制交互项标准差变动对应的边际效应图?

绘制交互项的标准差变动边际效应图

方法一:使用marginaleffects包转换结果

marginaleffects默认输出单位变动的边际效应,我们可以先提取边际效应数据,再将其乘以自变量的标准差,转换为标准差变动对应的效应后绘图:

library(marginaleffects)
library(ggplot2)

# 计算自变量hp的标准差
hp_sd <- sd(mtcars$hp, na.rm = TRUE)

# 获取hp在不同disp取值下的条件边际效应(单位变动)
me_data <- slopes(mod, variables = "hp", condition = "disp")

# 将单位变动的边际效应转换为标准差变动的效应(置信区间同步缩放)
me_data$estimate <- me_data$estimate * hp_sd
me_data$conf.low <- me_data$conf.low * hp_sd
me_data$conf.high <- me_data$conf.high * hp_sd

# 绘制标准差变动的边际效应图
ggplot(me_data, aes(x = disp, y = estimate)) +
  geom_line(linewidth = 1) +
  geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.2) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray50") +
  geom_rug(aes(x = disp), data = mtcars, sides = "b", color = "gray40") +
  labs(
    x = "disp",
    y = "hp标准差变动对应的mpg边际效应",
    title = "hp对mpg的边际效应(标准差变动)随disp的变化"
  ) +
  theme_grey()

方法二:手动计算并绘图(理解原理)

如果想明确计算逻辑,可以直接基于模型系数和方差协方差矩阵手动推导:

library(ggplot2)

# 提取模型系数和方差协方差矩阵
coefs <- coef(mod)
vcov_mat <- vcov(mod)

# 定义核心参数
b_hp <- coefs["hp"]
b_hpdisp <- coefs["hp:disp"]
hp_sd <- sd(mtcars$hp, na.rm = TRUE)

# 生成disp的连续取值序列
disp_seq <- seq(min(mtcars$disp), max(mtcars$disp), length.out = 100)

# 计算标准差变动的边际效应
me_sd <- (b_hp + b_hpdisp * disp_seq) * hp_sd

# 计算边际效应的标准误和95%置信区间
var_me <- vcov_mat["hp", "hp"] + disp_seq^2 * vcov_mat["hp:disp", "hp:disp"] + 2 * disp_seq * vcov_mat["hp", "hp:disp"]
se_me <- sqrt(var_me)
ci_low <- me_sd - 1.96 * se_me
ci_high <- me_sd + 1.96 * se_me

# 组装绘图数据
plot_data <- data.frame(
  disp = disp_seq,
  estimate = me_sd,
  conf.low = ci_low,
  conf.high = ci_high
)

# 绘图
ggplot(plot_data, aes(x = disp, y = estimate)) +
  geom_line(linewidth = 1) +
  geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.2) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray50") +
  geom_rug(aes(x = disp), data = mtcars, sides = "b", color = "gray40") +
  labs(
    x = "disp",
    y = "hp标准差变动对应的mpg边际效应",
    title = "hp对mpg的边际效应(标准差变动)随disp的变化"
  ) +
  theme_grey()

关键说明

  • 标准差变动的边际效应本质是单位变动边际效应 × 自变量的标准差,这种转换可以消除变量尺度差异的影响,让结果更具实质性解释力。
  • 置信区间需要同步乘以标准差,因为置信区间是边际效应的线性变换,缩放逻辑与估计值完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:00:59