Как построить одиночную числовую ковариату, используя 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)
Я не нашел способ сделать это с помощью emmip
ни emtrends
Для иллюстрации, как я могу сделать это, используя смешанные модели через lme
?
m1 <- lme(mpg ~ poly(disp,2), random = ~1|factor(am), data = mtcars)
2 ответа
Использование 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)
Я подозреваю, что ваша проблема связана с тем, что по умолчанию ковариаты сводятся к их средствам в emmeans. Вы можете использоватьat
или же cov.reduce
аргументы для указания большего количества значений. Смотрите документацию для ref_grid
а также vignette(“basics”, “emmeans”)
или указатель тем виньетки.