如何从交互项中提取边际效应?

How can I extract marginal effects from an interaction term?

我正在尝试从一个交互式术语中提取边际效应,该术语捕获处理 X(X 编码为 1 或 0)对结果 Y(Y 的编码范围为 -10 到 10)的影响) 由变量 A 调节(A 的编码介于 0 和 10 之间)。但是,我不确定如何从 A

的最高和最低度量的交互项中提取边际效应
 m<-lm(Y~ X*A, data = combined)

总的来说,我设法使用 interplot 函数生成边际效应图:

interplot(m = m, var1 = "X", var2 = "A", ci = 0.90)+
  ylab("X")+
  xlab("A")+
  theme_bw()+
  ggtitle("Figure 1. Effect of X on Y Moderated by A")+
  theme(plot.title = element_text(face = "bold"))+
  geom_hline(yintercept = 0, linetype = "dashed")

此外,我尝试使用 ggpredict 来提取 A 的不同水平下具有 90% 置信区间的边际效应:

margin1<- ggpredict(m, c ("X", "A"), ci = 0.90)

margin1

但是,使用 ggpredict 产生的边际系数与我在 m 的摘要中看到的不一致,并且与边际效应图不一致。相反,我得到的估计显然不准确或不精确。如何提取插播图中的边际效应?

很遗憾,由于您没有提供示例数据,这里是一个使用 R 内置 state.x77 数据集的最小示例。

fit <- lm(Income ~ Illiteracy * Murder, data = as.data.frame(state.x77))

我们感兴趣的是 IlliteracyIncome

的边际效应
library(sjPlot)
plot_model(fit, type = "int")

这里plot_model使用Murder的最小值和最大值作为分组级别(这是默认行为,参见Plotting linteraction effects of Regression Models vignette for details)。