仅使用一个解释性因子变量的“marginaleffects::plot_comparisons()”

问题描述 投票:0回答:1

假设我有一个线性模型,只有一个分类解释变量:

linmod <- lm(mpg ~ factor(cyl), data = mtcars)
parameters::parameters(linmod)
#> Parameter   | Coefficient |   SE |          95% CI | t(29) |      p
#> -------------------------------------------------------------------
#> (Intercept) |       26.66 | 0.97 | [ 24.68, 28.65] | 27.44 | < .001
#> cyl [6]     |       -6.92 | 1.56 | [-10.11, -3.73] | -4.44 | < .001
#> cyl [8]     |      -11.56 | 1.30 | [-14.22, -8.91] | -8.90 | < .001

如何使用

marginaleffects::plot_comparisons()
创建类似于以下的对比图(6 vs. 4 和 8 vs. 4)

parameters::parameters(linmod, drop = "(Intercept)") |> plot()

确实(但旋转了)。该函数似乎需要

by
condition
参数,这与此处无关。

r r-marginaleffects
1个回答
0
投票

不幸的是,

plot_comparisons()
是为具有超过1个预测变量的情况而设计的。值得庆幸的是,所有
marginaleffects
函数都会返回一个标准数据框,这意味着绘制您想要的结果很简单:

library(marginaleffects)
library(ggplot2)
mod = lm(mpg ~ factor(cyl), mtcars)
cmp = avg_comparisons(mod)


ggplot(cmp, aes(
  y = contrast, 
  x = estimate, 
  xmin = conf.low, 
  xmax = conf.high)) +
  geom_pointrange()

© www.soinside.com 2019 - 2024. All rights reserved.