如何使用模型中的 emmeans(或其他包)绘制单个数值协变量?

How do I plot a single numerical covariate using emmeans (or other package) from a model?

选择变量后,我通常会得到一个带有数值协变量(2 级或 3 级)的模型。我想做的是优先使用 emmeans 包进行绘图。有办法吗?

我可以使用 predict:

m1 <- lm(mpg ~ poly(disp,2), data = mtcars)
df <- cbind(disp = mtcars$disp, predict.lm(m1, interval = "confidence"))
df <- as.data.frame(df)

ggplot(data = df, aes(x = disp, y = fit)) +
    geom_line() +
  geom_ribbon(aes(ymin = lwr, ymax = upr, x = disp, y = fit),alpha = 0.2)

我没有找到使用 emmipemtrends

的方法

出于说明目的,我如何通过 lme 使用混合模型来做到这一点?

m1 <- lme(mpg ~ poly(disp,2), random = ~1|factor(am), data = mtcars)

我怀疑您的问题是由于默认情况下,协变量在 emmeans 中减少到它们的均值。您可以使用 atcov.reduce 参数来指定更多的值。请参阅 ref_gridvignette(“basics”, “emmeans”) 的文档或插图主题的索引。

使用sjPlot:

plot_model(m1, terms = "disp [all]", type = "pred")

给出相同的图形。

使用 emmeans:

em1 <- ref_grid(m1, at = list(disp = seq(min(mtcars$disp), max(mtcars$disp), 1)))
emmip(em1, ~disp, CIs = T)

returns 布局略有不同的图形。另一种方法是将结果添加到对象并按照我想要的方式绘制:

d1 <- emmip(em1, ~disp, CIs = T, plotit = F)