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.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *