Queridos todos: me he dado cuenta de algo extraño que no puedo explicar, puede usted? En resumen: el manual de enfoque para calcular un intervalo de confianza en un modelo de regresión logística, y la función de R confint()
dar resultados diferentes.
He estado yendo a través de Hosmer & Lemeshow del Aplicó la regresión logística (2ª edición). En el capitulo 3 se presenta un ejemplo de cálculo de las odds ratio e intervalo de confianza 95%. El uso de R, que fácilmente se puede reproducir el modelo:
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
Sin embargo, al calcular los intervalos de confianza de los parámetros, puedo obtener un intervalo diferente a la dada en el texto:
> 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 sugieren la siguiente fórmula:
$$ e^{[\hat\beta_1\pm z_{1-\alpha/2}\times\hat{\text{SE}}(\hat\beta_1)]} $$
y que el cálculo del intervalo de confianza para as.factor(dataset$dich.age)1
(2.9, el 22,9).
Esto parece sencillo hacer en 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])
da la misma respuesta que el libro.
Sin embargo, cualquier pensamiento sobre el por qué de confint()
parece dar resultados diferentes? He visto un montón de ejemplos de personas que utilizan confint()
.