通常的方法是在线性预测器的比例上计算置信区间,其中事物将更加正常(高斯),然后应用链接函数的逆以将置信区间从线性预测器比例映射到响应比例 .
要做到这一点,你需要两件事;
用 type = "link" 调用 predict() ,和
使用 se.fit = TRUE 调用 predict() .
第一个产生线性预测器的尺度预测,第二个返回预测的标准误差 . 在伪代码中
## foo
mod
preddata
preds
preds 然后是包含组件 fit 和 se.fit 的列表 .
然后是线性预测器的置信区间
critval
upr
lwr
fit
critval 是根据需要从t或z(正常)分布中选择的(我现在完全忘记用于哪种类型的GLM以及属性是什么)和所需的覆盖范围 . 1.96 是高斯分布的值,覆盖率为95%:
> qnorm(0.975) ## 0.975 as this is upper tail, 2.5% also in lower tail
[1] 1.959964
现在,对于 fit , upr 和 lwr ,我们需要将链接函数的反函数应用于它们 .
fit2
upr2
lwr2
现在您可以绘制所有三个和数据 .
preddata$lwr
preddata$upr
ggplot(data=foo, mapping=aes(x=x,y=y)) + geom_point() +
stat_smooth(method="glm", method.args=list(family=binomial)) +
geom_line(data=preddata, mapping=aes(x=x, y=upr), col="red") +
geom_line(data=preddata, mapping=aes(x=x, y=lwr), col="red")