J'ai construit une régression logistique dans laquelle la variable de résultat est en train de guérir après le traitement ( Cure
vs No Cure
). Tous les patients de cette étude ont reçu un traitement. Je voudrais savoir si le diabète est associé à ce résultat.
Dans R ma sortie de régression logistique se présente comme suit:
Call:
glm(formula = Cure ~ Diabetes, family = binomial(link = "logit"), data = All_patients)
...
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.2735 0.1306 9.749 <2e-16 ***
Diabetes -0.5597 0.2813 -1.990 0.0466 *
...
Null deviance: 456.55 on 415 degrees of freedom
Residual deviance: 452.75 on 414 degrees of freedom
(2 observations deleted due to missingness)
AIC: 456.75
Cependant, l’intervalle de confiance pour le rapport de cotes inclut 1 :
OR 2.5 % 97.5 %
(Intercept) 3.5733333 2.7822031 4.646366
Diabetes 0.5713619 0.3316513 1.003167
Lorsque je fais un test chi-carré sur ces données, j'obtiens ce qui suit:
data: check
X-squared = 3.4397, df = 1, p-value = 0.06365
Si vous souhaitez le calculer vous-même, la répartition du diabète dans les groupes guéris et non guéris est la suivante:
Diabetic cure rate: 49 / 73 (67%)
Non-diabetic cure rate: 268 / 343 (78%)
Ma question est la suivante: pourquoi les valeurs p et l'intervalle de confiance, y compris 1, ne concordent-ils pas?
r
hypothesis-testing
logistic
generalized-linear-model
odds-ratio
SniperBro2000
la source
la source
confint()
. C'est-à-dire que la probabilité était profilée. De cette façon, vous obtenez des CI analogues au LRT. Votre calcul est correct, mais constitue plutôt des IC de Wald. Il y a plus d'informations dans ma réponse ci-dessous.Réponses:
Les modèles linéaires généralisés permettent de réaliser trois types de tests statistiques. Ce sont: les tests de Wald, les tests du rapport de vraisemblance et les tests de score. L’excellent site d’aide statistique de UCLA en donne une discussion ici . La figure suivante (copiée de leur site) permet de les illustrer:
Les tests qui viennent avec1,96 χ2
summary.glm()
sont des tests de Wald. Vous ne dites pas comment vous avez obtenu vos intervalles de confiance, mais je suppose que vous avez utiliséconfint()
, ce qui appelleprofile()
. Plus précisément, ces intervalles de confiance sont calculés en profilant la probabilité (ce qui est une meilleure approche que de multiplier la SE par ). C'est-à-dire qu'ils sont analogues au test du rapport de vraisemblance, pas au test de Wald. Le , à son tour, est un test de score.Lorsque votre devient indéfiniment grand, les trois différents devraient converger vers la même valeur, mais ils peuvent différer légèrement lorsque vous ne disposez pas de données infinies. Il est à noter que la valeur (Wald) dans votre sortie initiale est à peine significative et qu'il y a peu de différence réelle entre juste au-dessus et juste sous ( citation ). Cette ligne n'est pas "magique". Étant donné que les deux tests les plus fiables viennent tout juste de dépasser , je dirais que vos données ne sont pas tout à fait "significatives" par rapport aux critères classiques.N p p α = 0,05 0,05
Ci-dessous, décrivez les coefficients à l'échelle du prédicteur linéaire et exécutez le test du rapport de vraisemblance de manière explicite (via
anova.glm()
). J'obtiens les mêmes résultats que toi:Comme @JWilliman l'a souligné dans un commentaire (maintenant supprimé)
R
, vous pouvez également obtenir une valeur p basée sur le score à l'aide deanova.glm(model, test="Rao")
. Dans l'exemple ci-dessous, notez que la valeur p n'est pas tout à fait la même que dans le test du khi-carré ci-dessus, car, par défaut,R
'schisq.test()
applique une correction de continuité. Si nous changeons ce paramètre, les p-values correspondent:la source