Построение случайных уклонов из модели блеска с использованием sjPlot - PullRequest
0 голосов
/ 19 декабря 2018

В прошлом я использовал 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 ]

0 голосов
/ 22 декабря 2018

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

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

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

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

0 голосов
/ 19 декабря 2018

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

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

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

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

enter image description here

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