Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 按组显示混合模型中随机效应的方差_R_Graphics_Lme4_Mixed Models - Fatal编程技术网

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组的参与者。或者最好

我使用lmer在R中运行了一个线性混合模型。我试图想象随机效应结构。为了生成一个图形,我使用了
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)

提供一个(小的)有代表性的样本数据集可能很有用。