选择变量后,我通常会进入一个带有数字协变量(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)
答案 0 :(得分:1)
我怀疑您的问题是由于以下事实造成的:默认情况下,协变量被简化为 emmeans 中的均值。您可以使用at
或cov.reduce
参数来指定更多的值。请参阅ref_grid
和vignette(“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)