[英]Confidence interval of prediction from glm model
我正在尝试从glm
获得预测的 95% 置信区间。 下面是我的model
library(caret)
library(ISLR)
data(Smarket)
glm.fit <- glm(Direction ~ Lag1 + Lag2, data = Smarket, family = binomial)
现在我尝试使用以下代码来估计预测的 95% 置信区间
> head(predict(glm.fit, interval="confidence", level = 0.025))
1 2 3 4 5 6
0.05554775 -0.01128128 -0.04222017 0.07288089 0.05806364 0.03169772
> head(predict(glm.fit, interval="confidence", level = 0.975))
1 2 3 4 5 6
0.05554775 -0.01128128 -0.04222017 0.07288089 0.05806364 0.03169772
显然,这没有给我正确的间隔,因为在这两种情况下,值是相同的。
你能帮我得到正确的间隔吗?
predict.glm()
不采用与 predict.lm 相同的predict.lm
(请参阅?predict.glm
):您必须手动执行此操作(或查找具有辅助函数的 package)。 以下代码在 logit(log-odds)标度上构造了 95% Wald 置信下限和上限,然后使用plogis()
反向转换为概率标度...
pp <- predict(glm.fit, se.fit = TRUE)
ci_lwr <- with(pp, plogis(fit + qnorm(0.025)*se.fit))
ci_upr <- with(pp, plogis(fit + qnorm(0.975)*se.fit))
> head(ci_lwr)
1 2 3 4 5 6
0.4842931 0.4596593 0.4451171 0.4780052 0.4796479 0.4759596
> head(ci_upr)
1 2 3 4 5 6
0.5433766 0.5347319 0.5339426 0.5581846 0.5492351 0.5398233
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.