如何解决将置信区间添加到交互的反向转换回归图中
我有一个混合效应模型,它 (a) 有一个对数链接,(b) 包括一个连续的交互。我想绘制交互效果,反向转换。我设法通过绘制 Y~X1 关系的三条线来做到这一点,每条线一条:平均 X2 -1SD、平均 X2 和平均 X2 + 1SD。但是,我真的需要在图中添加置信区间。 geom_ribbon 不能正常工作。任何人都可以帮忙吗?任何不使用 ggplot2 的建议也欢迎。这是没有置信区间的图的代码:
#the data
mydata<-structure(list(Week = c(3L,3L,6L,5L,1L,4L,2L,6L),X2 = c(20.8,21.4,22.2,21.9,21,21.8,16.6,15.6,19.8,17.5,12.5,20.1,20.5,21.7,22.3),X1 = c(78L,90L,81L,44L,9L,35L,99L,17L,7L,23L,14L,77L,84L,1L),Y = c(14.97469781,19.88267242,15.59780954,9.633809968,15.12038794,10.43636012,10.7436911,16.71840387,12.43274774,10.90741585,8.79514591,14.1932374,8.776376951,9.995133069,12.38314719,9.611533444)),class = "data.frame",row.names = c(NA,-16L))
attach(mydata)
#the model
Fmim<-glmer(Y~X1*X2+(1|Week),data=mydata,family=Gamma(link='log'))
E<-fixef(Fmim)
#set xf = to the mean X2 -1SD
xf=17.016
##then create a dummy variable
dummyx0<-seq(length=100,from=min(X1),to=max(X1))
##then create the y values from these dummy x values produced above
##because I logged the data,I have to do exponentiate the model to back-transform
y1x0<-(exp(E[1]+((E[3])*xf)+((E[2])*dummyx0)+((E[4])*xf*dummyx0)))
#set xf = to the mean X2
xf=19.85
#create the new y variable
y2x0<-(exp(E[1]+((E[3])*xf)+((E[2])*dummyx0)+((E[4])*xf*dummyx0)))
#set xf = to the mean X2 + 1sD
xf=25.134
#create the new y variable
y3x0<-(exp(E[1]+((E[3])*xf)+((E[2])*dummyx0)+((E[4])*xf*dummyx0)))
plotdata1<-data.frame(x=dummyx0,y=y1x0)
plotdata2<-data.frame(x=dummyx0,y=y2x0)
plotdata3<-data.frame(x=dummyx0,y=y3x0)
ggplot(plotdata1)+
geom_point(data = mydata,aes(x=X1,y=Y),size = 3.5,shape=1)+
geom_line(data = plotdata1,aes(y=y1x0,x=dummyx0),size=1)+
geom_line(data = plotdata2,aes(y=y2x0,size=1)+
geom_line(data = plotdata3,aes(y=y3x0,size=1)+
scale_colour_manual("",values="blue")+
scale_fill_manual("",values="grey12")+
labs(x=bquote("X1"),y = "Y") +
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_blank(),axis.line = element_line(colour = "black"))+
theme(legend.position ="none") +
theme(axis.title = element_text(size=15),# for axix
title = element_text(size=10),axis.text = element_text(size=15),axis.title.x = element_text(vjust = 0),axis.title.y = element_text(vjust = 2,hjust=0.5),legend.title = element_text(vjust = 0.5))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。