我已经使用lmer在R中运行了线性混合模型。我正在尝试可视化随机效果结构。为了生成图,我使用了print(dotplot(ranef(RT.model.4, condVar=T))[['part_no']]),其中part_no是混合模型的随机效果。它会创建如下内容:

r - 按组可视化混合模型中随机效应的方差-LMLPHP

这很棒。但是,我希望能够在图表中直观地看出两组参与者之间的差异(正在讨论随机效应)。我有A组和B组。在我的数据集中,有一列用于参与者类型,每行给出A或B值。

我想对图表进行颜色编码以显示来自A组和B组的参与者。或者更好的方法是创建两个单独的面板,每个组一个。

任何有关如何执行此操作的建议将不胜感激。

最佳答案

这是使用ggplot而不是lattice的一种方法(只是因为我对它更加熟悉),使用?dotplot.ranef.mer中的示例代码。您需要将数据中的治疗组与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)

关于r - 按组可视化混合模型中随机效应的方差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62216692/

10-12 17:14