繁体   English   中英

如何在ggplot中为glm模型添加置信区间?

[英]How do I add confidence intervals to glm model in ggplot?

这是我的数据的示例:

DATA <- data.frame(
TotalAbund = sample(1:10),
TotalHab = sample(0:1),
TotalInv = sample(c("yes", "no"), 20, replace = TRUE)
)
DATA$TotalHab<-as.factor(DATA$TotalHab)
DATA

这是我的模型:

MOD.1<-glm(TotalAbund~TotalInv+TotalHab, family=quasipoisson, data=DATA)

这是我的情节:

NEWDATA <- with(DATA,
               expand.grid(TotalInv=unique(TotalInv),
                       TotalHab=unique(TotalHab)))

pred <- predict(MOD.1,newdata= NEWDATA,se.fit=TRUE)
gg1 <- ggplot(NEWDATA, aes(x=factor(TotalHab), y=TotalAbund,colour=TotalInv))

我收到以下错误...

Error in eval(expr, envir, enclos) : object 'TotalAbund' not found

...在尝试运行最后一行代码时:

gg1 + geom_point(data=pframe,size=8,shape=17,alpha=0.7,
             position=position_dodge(width=0.75))

有人可以帮忙吗? 另外,如何为我的积分增加95%的置信区间? 谢谢。

您将需要自己计算95%的置信区间。 您使用predict并要求se.fit了正确的轨道。 我们将首先要求对链接比例尺进行预测,计算出95%的置信区间,然后将其转换为真实比例尺以进行绘制。 这是一个便利函数,用于为日志链接(在模型中使用)计算CI。

# get your prediction
pred <- predict(MOD.1,newdata= NEWDATA,se.fit=TRUE,
            type = "link")

# CI function
make_ci <- function(pred, data){

# fit, lower, and upper CI
fit <- pred$fit
lower <- fit - 1.96*pred$se.fit
upper <- fit + 1.96*pred$se.fit

return(data.frame(exp(fit), exp(lower), exp(upper), data))
}

my_pred <- make_ci(pred, NEWDATA)

# to be used in geom_errorbar
limits <- aes(x = factor(TotalHab), ymax = my_pred$exp.upper., ymin = my_pred$exp.lower.,
                     group = TotalInv)

然后我们将其绘制出来,我将最后的调整留给您,以弄清楚您想要的方式。

ggplot(my_pred, aes(x = factor(TotalHab), y = exp.fit., color = TotalInv))+
geom_errorbar(limits, position = position_dodge(width = 0.75),
            color = "black")+
geom_point(size = 8, position = position_dodge(width = 0.75), shape = 16)+
ylim(c(0,15))+
geom_point(data = DATA, aes(x = factor(TotalHab), y = TotalAbund, colour = TotalInv),
         size = 8, shape = 17, alpha = 0.7,
         position = position_dodge(width = 0.75))

情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM