Как построить несколько моделей блеска в одном сюжете? - PullRequest
0 голосов
/ 04 мая 2019

У меня есть две glmer модели с двумя ковариатами в каждой, которые я пытаюсь построить на одной фигуре.

MWE :

## generalized linear mixed model
library(lattice)

cbpp$response <- sample(c(0,1), replace=TRUE, size=nrow(cbpp))
gm1 <- glmer(response ~ size + incidence + (1 | herd),
              data = cbpp, family = binomial)

cbpp$obs <- 1:nrow(cbpp)
gm2 <- glmer(response ~ size + incidence + (1 | herd) +  (1|obs),
              family = binomial, data = cbpp)

Я пытаюсь построить прогнозируемые значения снова для каждого ковариата для каждой модели.Я нашел библиотеку sjPlot и функцию plot_model, которые могут составлять эти прогнозы при использовании type = "pred".Вызов этой функции индивидуально для каждой модели работает идеально и дает две отдельные цифры, подобные этой для каждой модели:

enter image description here

Однако я не знаком с R иЯ с трудом пытаюсь построить 4 графика на одной фигуре.

Функция plot_model имеет параметр grid, который работает только для моделей с распределением Пуассона.Для gm1 и gm2, я получаю следующую ошибку при вызове plot_model(gm1, type = "pred", grid = TRUE):

Error in if (attr(x, "logistic", exact = TRUE) == "1" && attr(x, "is.trial",  : missing value where TRUE/FALSE needed

В любом случае, я не смогу построить три модели на одной фигуре, используя это, так что япробовал три разных подхода.Сначала я увидел функцию plot_models, которая принимает несколько моделей в качестве входных данных.Когда я пытаюсь передать две модели в качестве аргументов, вызывая plot_models(gm1, gm2), я получаю следующую ошибку:

Error: $ operator not defined for this S4 class

Во-вторых, я попытался с помощью функции par установить mfrow и затем вызвать plot_model снова без успеха.Я не получаю никакой ошибки, но графики продолжают отображаться отдельными цифрами.

В-третьих, я пытался использовать библиотеку gridExtra.Вызов

p1 <- plot_model(gm1, type = "pred")
p2 <- plot_model(gm2, type = "pred")
grid.arrange(p1, p2)

приводит к следующей ошибке:

Error in gList(list(ppt = list(data = list(x = c(-2, -1, 0, 1, 2, 3, 4,  : only 'grobs' allowed in "gList"

У кого-нибудь есть понимание этого?

РЕДАКТИРОВАТЬ

1 Ответ

2 голосов
/ 04 мая 2019

Это похоже на работу:

pp1 <- plot_model(gm1,type="pred")
pp2 <- plot_model(gm2,type="pred")
plot_grid(c(pp1,pp2))
...