亲爱的大家——我发现了一些我无法解释的奇怪现象,你可以吗?总结:在逻辑回归模型中计算置信区间的手动方法和 R 函数confint()
给出不同的结果。
我一直在研究 Hosmer & Lemeshow 的应用逻辑回归(第 2 版)。在第 3 章中,有一个计算优势比和 95% 置信区间的示例。使用 R,我可以轻松地重现模型:
Call:
glm(formula = dataset$CHD ~ as.factor(dataset$dich.age), family = "binomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-1.734 -0.847 -0.847 0.709 1.549
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.8408 0.2551 -3.296 0.00098 ***
as.factor(dataset$dich.age)1 2.0935 0.5285 3.961 7.46e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 136.66 on 99 degrees of freedom
Residual deviance: 117.96 on 98 degrees of freedom
AIC: 121.96
Number of Fisher Scoring iterations: 4
但是,当我计算参数的置信区间时,我得到的区间与文本中给出的区间不同:
> exp(confint(model))
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 0.2566283 0.7013384
as.factor(dataset$dich.age)1 3.0293727 24.7013080
Hosmer & Lemeshow 建议使用以下公式:
他们计算出置信区间为as.factor(dataset$dich.age)1
(2.9, 22.9)。
这在 R 中似乎很简单:
# upper CI for beta
exp(summary(model)$coefficients[2,1]+1.96*summary(model)$coefficients[2,2])
# lower CI for beta
exp(summary(model)$coefficients[2,1]-1.96*summary(model)$coefficients[2,2])
给出了和书上一样的答案。
confint()
但是,关于为什么似乎给出不同结果的任何想法?我见过很多人使用confint()
.