glm 模型预测的置信区间
Confidence interval of prediction from glm model
我正在尝试从 glm
中获得预测的 95% 置信区间。下面是我的模型
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.glm
):您必须手动执行此操作(或查找具有辅助函数的包)。下面的代码在 logit (log-odds) 尺度上构建 95% Wald 置信下限和上限,然后使用 plogis()
到 back-transform 到概率尺度 ...
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
我正在尝试从 glm
中获得预测的 95% 置信区间。下面是我的模型
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.glm
):您必须手动执行此操作(或查找具有辅助函数的包)。下面的代码在 logit (log-odds) 尺度上构建 95% Wald 置信下限和上限,然后使用 plogis()
到 back-transform 到概率尺度 ...
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