代码之家  ›  专栏  ›  技术社区  ›  Share

如何在R的ggplot2中绘制混合效应模型估计?

  •  3
  • Share  · 技术社区  · 7 年前

      colour  size  level   marbles set
      Blue    Large Low     80      1
      Blue    Large High    9       2
      Blue    Small Low     91      1
      Blue    Small High    2       1 
      White   Large Low     80      2
      White   Large High    9       1
      White   Small Low     91      2
      White   Small High    2       1
    

    mod1 <- lmer(marbles ~ colour + size + level + colour:size + colour:level + size:level + (1|set), data = dat)
    
    mod2 <- lmer(marbles ~ colour + size + level +(1|set), data = dat)
    

    我通常使用以下代码进行绘图:

    pd <- position_dodge(0.82)
      ggplot(dat, aes(x=colour, y=marbles, fill = level)) + theme_bw() + 
      stat_summary(geom="bar", fun.y=mean, position = "dodge") +  
      stat_summary(geom="errorbar", fun.data=mean_cl_boot, position = pd)+
      + facet_grid(~size)
    

    1 回复  |  直到 7 年前
        1
  •  3
  •   gregor-fausto    7 年前

    这里有一种方法可以从因子设计的线性混合效应模型中绘制预测。您可以使用访问固定效应系数估计 fixef(...) coef(summary(...)) . 您可以使用访问随机效应估计 ranef(...) .

    library(lme4)
    mod1 <- lmer(marbles ~ colour + size + level + colour:size + colour:level + size:level + (1|set), data = dat)
    mod2 <- lmer(marbles ~ colour + size + level +(1|set), data = dat)
    
    dat$preds1 <- predict(mod1,type="response")
    dat$preds2 <- predict(mod2,type="response")
    
    dat<-melt(dat,1:5)
    
    pred.plot <- ggplot() +
      geom_point(data = dat, aes(x = size, y = value, 
                                group = interaction(factor(level),factor(colour)),
                                color=factor(colour),shape=variable)) +
      facet_wrap(~level) +
      labs(x="Size",y="Marbles")
    

    enter image description here

    这些是您在帖子中提供的数据的固定效应预测。颜色的点重叠,但这取决于模型中包含的数据。您选择通过轴、面或形状表示哪些因素的组合可能会改变图形的视觉重点。