过去,我使用了sjPlot软件包中的sjp.glmer
来可视化广义混合效应模型中的不同斜率。但是,使用新程序包,我无法弄清楚如何绘制各个斜率,如上图所示,here
我认为,这里是应允许生成图形的代码。我似乎无法在新版本的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")
我认为我可能会丢失一个标志,但是在阅读了文档之后,我找不到该标志可能是什么。
答案 0 :(得分: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)
更加接近链接的博客文章中显示的情节(每个随机效应级别都有其自己的特征……)
答案 1 :(得分:1)
Ben已经发布了正确答案。 sjPlot将ggeffects-package用于边际效应图,因此另一种选择是直接使用ggeffects:
ggpredict(fit2, terms = c("c12hour", "grp"), type="re") %>% plot()
a new vignette描述了如何获得混合模型/随机效应的边际效应。但是,该图类型目前没有置信区间。
链接的博客文章中的type = "ri.prob"
选项未针对协变量进行调整,这就是为什么我首先删除该选项,然后在ggeffects / sjPlot中(正确)重新实现该选项的原因。链接的博客文章中显示的置信区间也不正确。一旦确定了获取CI或预测间隔的方法,我还将添加此选项。