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

时间:2019-01-17 16:03:52

标签: r linear-regression emmeans

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

enter image description here

我没有找到使用emmipemtrends

的方法

出于说明目的,如何通过lme使用混合模型?

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

2 个答案:

答案 0 :(得分:1)

我怀疑您的问题是由于以下事实造成的:默认情况下,协变量被简化为 emmeans 中的均值。您可以使用atcov.reduce参数来指定更多的值。请参阅ref_gridvignette(“basics”, “emmeans”)的文档,或插图插图的索引。

答案 1 :(得分:0)

使用 sjPlot

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

给出相同的图形。

使用手段

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)