Построение нескольких случайных эффектов в смешанных моделях с одним графиком

library("lme4")
data(sleepstudy)             

fit1 <- lmer(Reaction ~ Days + (1|Subject), sleepstudy) 

Чтобы визуализировать случайный эффект,

library(sjPlot)
plot_model(fit1,type = "re",facet.grid = FALSE) 

В моих исходных данных у меня есть три случайные группы. Однако, если я хочу отобразить случайные эффекты, все они представлены в виде трех отдельных графиков. Как я могу разместить их на одном графике в панели 1 X 3 или панели 3 X 1.


person 89_Simple    schedule 19.06.2018    source источник


Ответы (1)


Вы можете использовать gridExtra::grid.arrange()

fit1 <- lmer(Reaction ~ (1|Days) + (1|Subject), sleepstudy) 

library(sjPlot)
p <- plot_model(fit1, type = "re", facet.grid=FALSE) 

library(gridExtra)
grid.arrange(p[[1]], p[[2]])

Производит:

введите здесь описание изображения

Вы также можете рассмотреть lattice::qqmath().

library(lattice)
p2 <- qqmath(ranef(fit1, condVar=TRUE))
grid.arrange(p2[[1]], p2[[2]])

Производит:

введите здесь описание изображения

Примечание. Чтобы указать столбцы, используйте параметр ncol. Сравните, например. grid.arrange(p2[[1]], p2[[2]], ncol=2) против grid.arrange(p2[[1]], p2[[2]], ncol=1).

person jay.sf    schedule 19.06.2018
comment
Также есть небольшая оболочка вокруг grid.arrange() в sjPlot: plot_grid(). Таким образом, plot_model(fit1,type = "re") %>% plot_grid() приводит к тому же результату. - person Daniel; 19.06.2018