如何使用模型中的 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)
我没有找到使用 emmip
和 emtrends
的方法
出于说明目的,我如何通过 lme
使用混合模型来做到这一点?
m1 <- lme(mpg ~ poly(disp,2), random = ~1|factor(am), data = mtcars)
我怀疑您的问题是由于默认情况下,协变量在 emmeans 中减少到它们的均值。您可以使用 at
或 cov.reduce
参数来指定更多的值。请参阅 ref_grid
和 vignette(“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)
选择变量后,我通常会得到一个带有数值协变量(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)
我怀疑您的问题是由于默认情况下,协变量在 emmeans 中减少到它们的均值。您可以使用 at
或 cov.reduce
参数来指定更多的值。请参阅 ref_grid
和 vignette(“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)