1

在变量选择之后,我通常会在一个带有数值协变量(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)

在此处输入图像描述

emmip我没有想出一种方法emtrends

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

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

2 回答 2

1

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

于 2019-01-18T21:58:18.710 回答
0

使用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)

返回布局差异很小的图形。另一种方法是将结果添加到对象并按照我想要的方式进行绘图:

d1 <- emmip(em1, ~disp, CIs = T, plotit = F)
于 2019-01-21T17:39:51.840 回答