将 lmer 的预测值绘制为单个图
Plotting predicted values from lmer as a single plot
我正在绘制多级模型的预测值图(使用 lme4 包)。我能够使用 Effect()
函数成功地做到这一点。如下图:
library(lme4)
library(effects)
m1=lmer(price~depth*cut+(1|cut),diamonds)
plot(Effect(c("cut","depth"),m1))
但是,我想将这些相同的数据呈现为带有图例的单个图。使用 ggplots,我可以做到这一点;但是,我丢失了错误栏,如下所示:
ggplot(data.frame(Effect(c("cut","depth"),m1)),
aes(x=depth,y=fit,color=cut,group=cut))+
geom_line()
如何将第一个图(带有误差线)重新创建为单个图?
怎么样:
library(effects)
library(lme4)
library(ggplot2)
m1 <- lmer(price~depth*cut+(1|cut),diamonds)
顺便说一句,请注意这个特定模型没有意义(包括固定项和随机项的因素)!我希望你只是用它作为例证......
ee <- Effect(c("cut","depth"),m1)
关键是使用 as.data.frame()
将效果对象变成有用的东西...
theme_set(theme_bw())
ggplot(as.data.frame(ee),
aes(depth,fit,colour=cut,fill=cut))+
geom_line()+
## colour=NA suppresses edges of the ribbon
geom_ribbon(colour=NA,alpha=0.1,
aes(ymin=lower,ymax=upper))+
## add rug plot based on original data
geom_rug(data=ee$data,aes(y=NULL),sides="b")
我正在绘制多级模型的预测值图(使用 lme4 包)。我能够使用 Effect()
函数成功地做到这一点。如下图:
library(lme4)
library(effects)
m1=lmer(price~depth*cut+(1|cut),diamonds)
plot(Effect(c("cut","depth"),m1))
但是,我想将这些相同的数据呈现为带有图例的单个图。使用 ggplots,我可以做到这一点;但是,我丢失了错误栏,如下所示:
ggplot(data.frame(Effect(c("cut","depth"),m1)),
aes(x=depth,y=fit,color=cut,group=cut))+
geom_line()
如何将第一个图(带有误差线)重新创建为单个图?
怎么样:
library(effects)
library(lme4)
library(ggplot2)
m1 <- lmer(price~depth*cut+(1|cut),diamonds)
顺便说一句,请注意这个特定模型没有意义(包括固定项和随机项的因素)!我希望你只是用它作为例证......
ee <- Effect(c("cut","depth"),m1)
关键是使用 as.data.frame()
将效果对象变成有用的东西...
theme_set(theme_bw())
ggplot(as.data.frame(ee),
aes(depth,fit,colour=cut,fill=cut))+
geom_line()+
## colour=NA suppresses edges of the ribbon
geom_ribbon(colour=NA,alpha=0.1,
aes(ymin=lower,ymax=upper))+
## add rug plot based on original data
geom_rug(data=ee$data,aes(y=NULL),sides="b")