2017-08-14 74 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

我更新了答案,以更準確地解決您的問題。 –