2017-08-14 99 views
2

我有一个2x2x2因子设计和一个随机效果。数据(DAT)如下:如何绘制R中ggplot2中的混合效果模型估计值?

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) 

我我不确定如何用模型估计中的系数替换项。关于如何绘制gpplot2中最终模型的估计值的任何想法?如果有人可以建议一个简单的方式来打印模型估计值将会有所帮助

此外,有无论如何,我可以让ggplot2显示在显示重要的交互图上的酒吧?

+0

你想要什么样的输出?你想绘制不同系数值的预测弹珠数量吗?或者你想实际打印模型中的系数? – MrFlick

+0

我想绘制模型中预测的弹子数(即模型估计值)。但是,如果你能告诉我一个简单的方法来打印模型中的系数,这将会很有帮助。现在我做'摘要(mod)' – Ash

回答

2

下面是绘制因子设计线性混合效应模型预测的一种方法。您可以使用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

这些是固定的,你在您的文章中给出的数据影响预测。颜色的点重叠,但这取决于模型中包含的数据。您选择通过轴,面或形状表示的哪些因素组合可能会改变图形的视觉重点。

+0

我有多个预测指标,它仍然可以工作吗?另外,我的数据没有连续坐标轴 – Ash

+0

我更新了答案,以更准确地解决您的问题。 –