Построение случайных уклонов из модели блеска с использованием 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 или интервалов прогнозирования, я добавлю и эту опцию.