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

标签 r graphics lme4 mixed-models

我使用 lmer 在 R 中运行了一个线性混合模型。我正在尝试可视化随机效应结构。为了生成图表,我使用了 print(dotplot(ranef(RT.model.4, condVar=T))[['part_no']]) 其中 part_no 是来自混合模型的随机效应。它创建了这样的东西:

enter image description here

这太棒了。但是,我希望能够在图表中直观地分辨出我的两组参与者(正在讨论的随机效应)之间的差异。我有 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/

相关文章:

php - 创建缩略图的最有效方法?

r - 在 R-PIRLS step-halvings 中执行 Gamma glmer 时出现错误消息,无法减少 pwrssUpdate 中的偏差

r - 带有ggplot2::stat_qq的Q-Q图,颜色,单个组

r - 按周或几天汇总数据

R extrafont 包,依赖项 ‘Rttf2pt1’ 不可用

c++ - 计算着色器不写入缓冲区?

java - 使用平行于 X 轴的线的孵化算法

r - 大数据 : generalized linear mixed-effects models

截距和斜率的随机效应作为结果模型

r - 根据 rowSums + Short 'apply' Q 排列矩阵上的元素