Comment interpréter Null & Déviance résiduelle (avec exemples)
Chaque fois que vous ajustez un modèle linéaire général (comme la régression logistique, la régression de Poisson, etc.), la plupart des logiciels statistiques produisent des valeurs pour la déviance nulle et la déviance résiduelle du modèle.
La déviance nulle nous indique dans quelle mesure la variable de réponse peut être prédite par un modèle avec uniquement un terme d’origine.
La déviance résiduelle nous indique dans quelle mesure la variable de réponse peut être prédite par un modèle avec p variables prédictives. Plus la valeur est faible, plus le modèle est capable de prédire la valeur de la variable de réponse.
Pour déterminer si un modèle est « utile », nous pouvons calculer la statistique du Chi carré comme suit :
X 2 = Déviance nulle – Déviance résiduelle
avec p degrés de liberté.
Nous pouvons alors trouver la valeur p associée à cette statistique du Chi carré. Plus la valeur p est faible, plus le modèle est capable de s’adapter à l’ensemble de données par rapport à un modèle avec juste un terme d’origine.
L’exemple suivant montre comment interpréter la déviance nulle et résiduelle pour un modèle de régression logistique dans R.
Exemple : Interprétation de la déviance nulle et résiduelle
Pour cet exemple, nous utiliserons l’ensemble de données par défaut du package ISLR. Nous pouvons utiliser le code suivant pour charger et afficher un résumé de l’ensemble de données :
#load dataset data <- ISLR::Default #view summary of dataset summary(data) default student balance income No :9667 No :7056 Min. : 0.0 Min. : 772 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340 Median : 823.6 Median :34553 Mean : 835.4 Mean :33517 3rd Qu.:1166.3 3rd Qu.:43808 Max. :2654.3 Max. :73554
Cet ensemble de données contient les informations suivantes sur 10 000 individus :
- défaut : indique si un individu a fait défaut ou non.
- étudiant : indique si un individu est étudiant ou non.
- solde : Solde moyen porté par un individu.
- revenu : Revenu de l’individu.
Nous utiliserons le statut d’étudiant, le solde bancaire et le revenu pour construire un modèle de régression logistique qui prédit la probabilité qu’un individu donné fasse défaut :
#fit logistic regression model model <- glm(default~balance+student+income, family="binomial", data=data) #view model summary summary(model) Call: glm(formula = default ~ balance + student + income, family = "binomial", data = data) Deviance Residuals: Min 1Q Median 3Q Max -2.4691 -0.1418 -0.0557 -0.0203 3.7383 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 *** balance 5.737e-03 2.319e-04 24.738 < 2e-16 *** studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** income 3.033e-06 8.203e-06 0.370 0.71152 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 on 9999 degrees of freedom Residual deviance: 1571.5 on 9996 degrees of freedom AIC: 1579.5 Number of Fisher Scoring iterations: 8
Nous pouvons observer les valeurs suivantes dans la sortie pour l’écart nul et résiduel :
- Déviance nulle : 2920,6 avec df = 9999
- Écart résiduel : 1571,5 avec df = 9996
Nous pouvons utiliser ces valeurs pour calculer la statistique X 2 du modèle :
- X 2 = Déviance nulle – Déviance résiduelle
- X2 = 2910,6 – 1579,0
- X2 = 1331,6
Il existe p = 3 degrés de liberté de variables prédictives.
Nous pouvons utiliser le calculateur du Chi carré vers la valeur P pour découvrir qu’une valeur X 2 de 1331,6 avec 3 degrés de liberté a une valeur p de 0,000000.
Puisque cette valeur p est bien inférieure à 0,05, nous conclurions que le modèle est très utile pour prédire la probabilité qu’un individu donné fasse défaut.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer une régression logistique en pratique en R et Python :
Comment effectuer une régression logistique dans R
Comment effectuer une régression logistique en Python