R 按组显示混合模型中随机效应的方差
我使用lmer在R中运行了一个线性混合模型。我试图想象随机效应结构。为了生成一个图形,我使用了R 按组显示混合模型中随机效应的方差,r,graphics,lme4,mixed-models,R,Graphics,Lme4,Mixed Models,我使用lmer在R中运行了一个线性混合模型。我试图想象随机效应结构。为了生成一个图形,我使用了print(dotplot(ranef(RT.model.4,condVar=T))[['part\u no']],其中part\u no是混合模型的随机效应。它创建了如下内容: 这太棒了。然而,我希望能够在图表中直观地说出我的两组参与者之间的差异(正在讨论的随机效应)。我有A组和B组。在我的数据集中,我有一列表示参与者类型,每行的值为A或B 我想对图表进行颜色编码,以显示A组和B组的参与者。或者最好
print(dotplot(ranef(RT.model.4,condVar=T))[['part\u no']]
,其中part\u no
是混合模型的随机效应。它创建了如下内容:
这太棒了。然而,我希望能够在图表中直观地说出我的两组参与者之间的差异(正在讨论的随机效应)。我有A组和B组。在我的数据集中,我有一列表示参与者类型,每行的值为A或B
我想对图表进行颜色编码,以显示A组和B组的参与者。或者最好是创建两个单独的面板,每组一个
任何关于如何做到这一点的建议都将不胜感激 您应该能够使用
dotplot()
中的groups=
选项。假设您的数据位于名为df
的数据框中,并且组变量位于group
中,您可以使用
print(dotplot(ranef(RT.model.4, condVar=T), groups=df$group)[['part_no']])
这是一种使用
ggplot
的方法,而不是使用lattice
(因为我对它比较熟悉)中的示例代码。您需要将数据中的治疗组与ranef
返回的随机效应分组变量相匹配。我不知道如何在dotplot.ranef.mer
中自动完成此操作
与治疗组一起创建一个小例子;每个受试者被分配到一个治疗组
library(lme4)
library(ggplot2)
sleepstudy$trt = as.integer(sleepstudy$Subject %in% 308:340)
m = lmer(Reaction ~ trt + (1|Subject), sleepstudy)
将随机效应转换为数据帧,并在治疗组中进行匹配
dd = as.data.frame(ranef(m, condVar=TRUE), "Subject")
dd$trt = with(sleepstudy, trt[match(dd$grp, Subject)])
然后,您可以绘制您想要的图形,例如使用facet\
,或为每个组指定颜色,或
ggplot(dd, aes(y=grp,x=condval, colour=factor(trt))) +
geom_point() + facet_wrap(~term,scales="free_x") +
geom_errorbarh(aes(xmin=condval -2*condsd,
xmax=condval +2*condsd), height=0)
ggplot(dd, aes(y=grp,x=condval)) +
geom_point() +
geom_errorbarh(aes(xmin=condval -2*condsd,
xmax=condval +2*condsd), height=0)+
facet_wrap(~trt)
提供一个(小的)有代表性的样本数据集可能很有用。