Как построить одиночную числовую ковариату, используя emmeans (или другой пакет) из модели? - PullRequest
0 голосов
/ 17 января 2019

После выбора переменной я обычно оказываюсь в модели с числовой переменной (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

Я не нашел способ сделать это, используя emmip ни emtrends

Для иллюстрации, как я могу сделать это, используя смешанные модели через lme?

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

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Использование 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)
0 голосов
/ 19 января 2019

Я подозреваю, что ваша проблема связана с тем, что по умолчанию ковариаты сводятся к их среднему значению в emmeans .Вы можете использовать аргументы at или cov.reduce, чтобы указать большее количество значений.См. Документацию для ref_grid и vignette(“basics”, “emmeans”) или указатель тем виньетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...