Построение случайных уклонов из модели блеска с использованием sjPlot

В прошлом я использовал sjp.glmer из пакета sjPlot для визуализации различных уклонов из обобщенной модели смешанных эффектов. Однако, с новым пакетом, я не могу понять, как построить отдельные уклоны, как на рисунке для вероятностей фиксированных эффектов по (случайному) уровню группы, расположенному здесь

Вот код, который, я думаю, должен позволять создавать фигуры. Я просто не могу получить это в новой версии sjPlot,

library(lme4)
library(sjPlot)
data(efc)
# create binary response
efc$hi_qol = 0
efc$hi_qol[efc$quol_5 > mean(efc$quol_5,na.rm=T)] = 1
# prepare group variable
efc$grp = as.factor(efc$e15relat)
# data frame for 2nd fitted model
mydf <- na.omit(data.frame(hi_qol = as.factor(efc$hi_qol),
                           sex = as.factor(efc$c161sex),
                           c12hour = as.numeric(efc$c12hour),
                           neg_c_7 = as.numeric(efc$neg_c_7),
                           grp = efc$grp))
# fit 2nd model
fit2 <- glmer(hi_qol ~ sex + c12hour + neg_c_7 + (1|grp),
              data = mydf,
              family = binomial("logit"))

Я попытался построить график с помощью следующего кода.

plot_model(fit2,type="re")
plot_model(fit2,type="prob")
plot_model(fit2,type="eff") 

Я думаю, что, возможно, мне не хватает флага, но после прочтения документации я не могу узнать, что это за флаг.

2 ответа

Решение

Похоже, это может делать то, что вы хотите:

(pp <- plot_model(fit2,type="pred",
       terms=c("c12hour","grp"),pred.type="re"))
  • type="pred": график прогнозируемых значений
  • terms=c("c12hour", "grp"): включают c12hour (как переменная оси X) и grp в прогнозах
  • pred.type="re": случайные эффекты

Я еще не смог получить ленты с доверительными интервалами (пытался ci.lvl=0.9, но не повезло...)

pp+facet_wrap(~group) приближается к сюжету, показанному в связанном сообщении в блоге (каждый уровень случайных эффектов имеет свой собственный аспект...)

Бен уже отправил правильный ответ. sjPlot использует ggeffects-package для графика предельных эффектов, поэтому альтернативой будет использование ggeffects напрямую:

ggpredict(fit2, terms = c("c12hour", "grp"), type="re") %>% plot()

Есть новая виньетка, описывающая, как получить предельные эффекты для смешанных моделей / случайных эффектов. Однако доверительные интервалы в настоящее время недоступны для этого типа графика.

type = "ri.prob" опция в связанном посте блога не корректировалась для ковариат, поэтому я сначала удалил эту опцию, а затем заново (правильно) реализовал ее в ggeffects / sjPlot. Доверительные интервалы, указанные в связанном блоге, также неверны. Как только я выясню способ получения CI или интервалов прогнозирования, я добавлю и эту опцию.

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