Как построить одиночную числовую ковариату, используя 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”)или указатель тем виньетки.

Другие вопросы по тегам