Comment calculer l’AUC (aire sous la courbe) dans R
La régression logistique est une méthode statistique que nous utilisons pour ajuster un modèle de régression lorsque la variable de réponse est binaire. Pour évaluer dans quelle mesure un modèle de régression logistique s’adapte à un ensemble de données, nous pouvons examiner les deux métriques suivantes :
- Sensibilité : probabilité que le modèle prédise un résultat positif pour une observation alors que le résultat est effectivement positif. C’est ce qu’on appelle également le « taux de vrais positifs ».
- Spécificité : la probabilité que le modèle prédise un résultat négatif pour une observation alors que le résultat est effectivement négatif. C’est ce qu’on appelle également le « vrai taux négatif ».
Une façon de visualiser ces deux mesures consiste à créer une courbe ROC , qui signifie courbe « caractéristique de fonctionnement du récepteur ».
Il s’agit d’un graphique qui affiche la sensibilité le long de l’axe des y et (1 – spécificité) le long de l’axe des x. Une façon de quantifier l’efficacité du modèle de régression logistique dans la classification des données consiste à calculer l’AUC , qui signifie « aire sous la courbe ».
Plus l’AUC est proche de 1, meilleur est le modèle.
L’exemple suivant, étape par étape, montre comment calculer l’AUC pour un modèle de régression logistique dans R.
Étape 1 : Charger les données
Tout d’abord, nous allons charger l’ensemble de données par défaut du package ISLR , qui contient des informations indiquant si diverses personnes ont ou non fait défaut sur un prêt.
#load dataset data <- ISLR::Default #view first six rows of dataset head(data) 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
Étape 2 : Ajuster le modèle de régression logistique
Ensuite, nous ajusterons un modèle de régression logistique pour prédire la probabilité qu’un individu fasse défaut :
#make this example reproducible set.seed(1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample(c(TRUE, FALSE), nrow(data), replace=TRUE, prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family="binomial", data=train)
Étape 3 : Calculer l’AUC du modèle
Ensuite, nous utiliserons la fonction auc() du package pROC pour calculer l’AUC du modèle. Cette fonction utilise la syntaxe suivante :
auc(réponse, prédite)
Voici comment utiliser cette fonction dans notre exemple :
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type="response") #calculate AUC library(pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < cases Area under the curve: 0.9437
L’AUC du modèle s’avère être de 0,9437 .
Puisque cette valeur est proche de 1, cela indique que le modèle fait un très bon travail pour prédire si un individu fera ou non défaut sur son prêt.