Sehr geehrte Damen und Herren, mir ist etwas Merkwürdiges aufgefallen, das ich Ihnen nicht erklären kann. Zusammenfassend lässt sich sagen, dass der manuelle Ansatz zur Berechnung eines Konfidenzintervalls in einem logistischen Regressionsmodell und die R-Funktion confint()
unterschiedliche Ergebnisse liefern.
Ich habe die angewandte logistische Regression von Hosmer & Lemeshow (2. Auflage) durchlaufen . Im dritten Kapitel finden Sie ein Beispiel für die Berechnung der Odds Ratio und des 95% -Konfidenzintervalls. Mit R kann ich das Modell leicht reproduzieren:
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
Wenn ich jedoch die Konfidenzintervalle der Parameter berechne, erhalte ich ein anderes Intervall als im Text angegeben:
> 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 schlagen folgende Formel vor:
und sie berechnen das Konfidenzintervall für as.factor(dataset$dich.age)1
(2.9, 22.9).
Dies scheint in R unkompliziert zu sein:
# 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])
gibt die gleiche Antwort wie das Buch.
Überlegen Sie jedoch, warum confint()
sich unterschiedliche Ergebnisse ergeben? Ich habe viele Beispiele von Leuten gesehen, die es benutzen confint()
.