0

有人可以建议一种快速且易于理解的方法来使用 ggplot 来可视化 glm 模型/二元逻辑回归模型的双向交互吗?我对边际效应感兴趣!

我看过其他帖子,但并没有真正理解它们。另一个问题是我不能使用 ggpredict/gginteraction 因为 R 版本(3.4.2)。

我的数据结构看起来像这样(简化):

region_AB   motive   voter_attribute  vote_for_party_XY
1           1        1                1
1           0        1                1
1           1        0                0
0           0        0                0
0           0        1                0
0           1        0                0

而且我声称(并且实际上发现)那里的区域调节了给定动机对 XY 党投票的影响。

现在我知道这不是一个可重复的例子。但也许有人可以想出一个万能的解决方案(至少对于 glm 模型的双向交互的情况)。如果有必要并且有帮助,也许该mtcars数据集可以用于示例目的:甚至还有一个使用此数据集的交互项模型的示例

我希望有人对此有一个很好且简单的解决方案。这可能是可视化双向交互的边际效应的一般指南......

4

1 回答 1

2

您可以使用ggeffects-package计算边际效应。返回值是一个数据框,但是有一个plot()- 方法可以创建/返回一个 ggplot 对象。这是一个具有二进制结果的人工示例,但您可以在上述参考网站的“文章”中找到更多详细信息。

library(ggeffects)
library(sjmisc) # to preserve labels
data(efc)

# prepare data, create binary outcome and make
# numeric variables categorical
efc$neg_c_7d <- dicho(efc$neg_c_7)
efc$c161sex <- to_factor(efc$c161sex)
efc$c172code <- to_factor(efc$c172code)

# fit logistic regression
m <- glm(
  neg_c_7d ~ c12hour + c161sex * c172code,
  data = efc,
  family = binomial(link = "logit")
)

# compute and plot marginal effects
ggpredict(m, c("c172code", "c161sex")) %>% plot()

在此处输入图像描述

请注意,我使用的数据集标记为,这就是为什么用“正确”值和变量标签对轴进行注释的原因。

于 2018-07-02T08:00:28.670 回答