R : Comment calculer les rapports de cotes dans un modèle de régression logistique
La régression logistique est une méthode que nous pouvons utiliser pour ajuster un modèle de régression lorsque la variable de réponse est binaire.
Lorsque vous ajustez un modèle de régression logistique dans R, les coefficients du résumé du modèle représentent la variation moyenne du logarithme des probabilités de la variable de réponse associée à une augmentation d’une unité de chaque variable prédictive.
Cependant, nous souhaitons souvent plutôt calculer le rapport de cotes pour les variables prédictives du modèle.
Pour calculer rapidement les rapports de cotes pour chaque variable prédictive du modèle, vous pouvez utiliser la syntaxe suivante :
exp(coef(model))
Vous pouvez également calculer un intervalle de confiance de 95 % pour chaque rapport de cotes en utilisant la syntaxe suivante :
exp(cbind(Odds_Ratio = coef(model), confint(model)))
L’exemple suivant montre comment utiliser cette syntaxe pour calculer et interpréter les rapports de cotes pour un modèle de régression logistique dans R.
Exemple : calcul des rapports de cotes dans un modèle de régression logistique dans R
Pour cet exemple, nous utiliserons l’ensemble de données par défaut du package ISLR dans R.
Nous pouvons utiliser le code suivant pour charger et afficher un résumé de l’ensemble de données :
library(ISLR) #view first five rows of Default dataset head(Default) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
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.
Nous pouvons utiliser la fonction glm et spécifier family=’binomial’ afin que R adapte un modèle de régression logistique à l’ensemble de données :
#fit logistic regression model model <- glm(default~student+balance+income, family='binomial', data=Default) #disable scientific notation for model summary options(scipen=999) #view model summary summary(model) Call: glm(formula = default ~ student + balance + income, family = "binomial", data = train) Deviance Residuals: Min 1Q Median 3Q Max -2.5586 -0.1353 -0.0519 -0.0177 3.7973 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -11.478101194 0.623409555 -18.412 <0.0000000000000002 *** studentYes -0.493292438 0.285735949 -1.726 0.0843 . balance 0.005988059 0.000293765 20.384 <0.0000000000000002 *** income 0.000007857 0.000009965 0.788 0.4304 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2021.1 on 6963 degrees of freedom Residual deviance: 1065.4 on 6960 degrees of freedom AIC: 1073.4 Number of Fisher Scoring iterations: 8
Les coefficients dans le résultat indiquent la variation moyenne du log des probabilités de défaut de paiement.
Par exemple, une augmentation d’une unité du solde est associée à une augmentation moyenne de 0,005988 du log de la probabilité de défaut.
Pour calculer à la place le rapport de cotes pour chaque variable prédictive, nous pouvons utiliser la syntaxe suivante :
#calculate odds ratio for each predictor variable
exp(coef(model))
(Intercept) studentYes balance income
0.00001903854 0.52373166965 1.00575299051 1.00000303345
Nous pouvons également calculer chaque rapport de cotes ainsi qu’un intervalle de confiance à 95 % pour chaque rapport de cotes :
#calculate odds ratio and 95% confidence interval for each predictor variable
exp(cbind(Odds_Ratio = coef(model), confint(model)))
Odds_Ratio 2.5 % 97.5 %
(Intercept) 0.00001903854 0.000007074481 0.0000487808
studentYes 0.52373166965 0.329882707270 0.8334223982
balance 1.00575299051 1.005308940686 1.0062238757
income 1.00000303345 0.999986952969 1.0000191246
Le rapport de cotes pour chaque coefficient représente l’augmentation moyenne des probabilités de défaut d’un individu, en supposant que toutes les autres variables prédictives restent constantes.
Par exemple, le solde de la variable prédictive a un rapport de cotes de 1,0057 .
Cela signifie que pour chaque dollar supplémentaire dans le solde porté par un individu, les chances que l’individu ne rembourse pas son prêt augmentent d’un facteur de 1,0057 , en supposant que le statut d’étudiant et les revenus restent constants .
Nous pouvons interpréter les rapports de cotes pour les autres variables prédictives de la même manière.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment utiliser Predict() avec le modèle de régression logistique dans R
Comment interpréter Pr(>|z|) dans la sortie de régression logistique dans R
Comment tracer une courbe de régression logistique dans R