Cher tout le monde - J'ai remarqué quelque chose d'étrange que je ne peux pas expliquer, pouvez-vous? En résumé: l'approche manuelle pour calculer un intervalle de confiance dans un modèle de régression logistique et la fonction R confint()
donnent des résultats différents.
Je suis passé par la régression logistique appliquée de Hosmer & Lemeshow (2e édition). Dans le troisième chapitre, vous trouverez un exemple de calcul du rapport de cotes et d'un intervalle de confiance à 95%. En utilisant R, je peux facilement reproduire le modèle:
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
Cependant, lorsque je calcule les intervalles de confiance des paramètres, j'obtiens un intervalle différent de celui indiqué dans le texte:
> 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 suggèrent la formule suivante:
et ils calculent l'intervalle de confiance pour as.factor(dataset$dich.age)1
être (2.9, 22.9).
Cela semble simple à faire dans 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])
donne la même réponse que le livre.
Cependant, aucune idée sur pourquoi confint()
semble donner des résultats différents? J'ai vu beaucoup d'exemples de personnes utilisant confint()
.
la source
Réponses:
Après avoir récupéré les données sur le site Web qui les accompagne , voici comment je procéderais:
Les IC à 95% basés sur la probabilité de profil sont obtenus avec
C'est souvent la valeur par défaut si le
MASS
paquet est chargé automatiquement. Dans ce cas, je reçoisMaintenant, si je voulais comparer avec des IC à 95% de Wald (basés sur la normalité asymptotique) comme celui que vous avez calculé à la main, je l’utiliserais à la
confint.default()
place; cela donneLes IC de Wald sont bons dans la plupart des situations, bien que le profil fondé sur la probabilité puisse être utile avec des stratégies d'échantillonnage complexes. Si vous souhaitez comprendre leur fonctionnement, voici un bref aperçu des principes essentiels: Intervalles de confiance selon la méthode du vraisemblance du profil, avec applications en épidémiologie vétérinaire . Vous pouvez également consulter le livre MASS de Venables et Ripley, §8.4, p. 220-221.
la source
Suivi: les intervalles de confiance du profil sont plus fiables (le choix du seuil approprié pour la vraisemblance implique une hypothèse asymptotique (échantillon large), mais il s'agit d'une hypothèse beaucoup plus faible que l'hypothèse de surface de probabilité quadratique sous-jacente aux intervalles de confiance de Wald). Autant que je sache, les statistiques de Wald ne présentent aucun argument quant aux intervalles de confiance des profils, si ce n’est que les statistiques de Wald sont beaucoup plus rapides à calculer et peuvent être "assez bonnes" dans de nombreuses circonstances (mais parfois très éloignées: regardez la Hauck- Effet Donner).
la source
Je crois que si vous consultez le fichier d’aide de confint (), vous constaterez que l’intervalle de confiance en cours de construction est un intervalle de "profil" au lieu d’un intervalle de confiance de Wald (votre formule est HL).
la source