Comment créer une courbe ROC dans SAS



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.

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é et la spécificité d’un modèle de régression logistique.

L’exemple étape par étape suivant montre comment créer et interpréter une courbe ROC dans SAS.

Étape 1 : Créer l’ensemble de données

Tout d’abord, nous allons créer un ensemble de données contenant des informations sur les variables suivantes pour 18 étudiants :

  • Acceptation dans un certain collège (1 = oui, 0 = non)
  • GPA (échelle de 1 à 4)
  • Score ACT (échelle de 1 à 36)
/*create dataset*/
data my_data;
    input acceptance gpa act;
    datalines;
1 3 30
0 1 21
0 2 26
0 1 24
1 3 29
1 3 34
0 3 31
1 2 29
0 1 21
1 2 21
0 1 15
1 3 32
1 4 31
1 4 29
0 1 24
1 4 29
1 3 21
1 4 34
;
run;

Étape 2 : Ajuster le modèle de régression logistique et créer une courbe ROC

Ensuite, nous utiliserons la logistique proc pour ajuster le modèle de régression logistique, en utilisant « acceptation » comme variable de réponse et « gpa » et « agir » comme variables prédictives.

Nous spécifierons décroissant pour que SAS sache prédire la probabilité que la variable de réponse prenne la valeur 1.

Nous utiliserons également plots(only)=roc pour créer la courbe ROC pour le modèle :

/*fit logistic regression model & create ROC curve*/
proc logistic data=my_data descending plots(only)=roc;
  model acceptance = gpa act;
run;

Courbe ROC dans SAS

Étape 3 : Interpréter la courbe ROC

Plus la courbe ROC épouse le coin supérieur gauche du tracé, mieux le modèle prédit la valeur des valeurs de réponse dans l’ensemble de données.

Sur le graphique ci-dessus, nous pouvons voir que la courbe ROC bleue a tendance à épouser le coin supérieur gauche, ce qui indique que le modèle de régression logistique fait un bon travail pour prédire la valeur des valeurs de réponse.

Pour quantifier dans quelle mesure le modèle de régression logistique s’adapte aux données, nous pouvons calculer l’ AUC – aire sous la courbe – qui nous indique la proportion de la parcelle située sous la courbe.

Plus l’AUC est proche de 1, meilleur est le modèle. Un modèle avec une AUC égale à 0,5 n’est pas meilleur qu’un modèle faisant des classifications aléatoires.

Sous le titre du graphique ci-dessus, nous pouvons voir que l’AUC de ce modèle est de 0,9351 .

Puisque cette valeur est proche de un, cela confirme que le modèle prédit bien la valeur des valeurs de réponse.

Nous pouvons également utiliser la valeur AUC pour comparer l’ajustement de différents modèles de régression logistique.

Par exemple, supposons que nous ajustions deux modèles de régression logistique différents et calculions les valeurs d’AUC pour chacun :

  • AUC du modèle 1 : 0,9351
  • AUC du modèle 2 : 0,8140

Étant donné que l’AUC du modèle 1 est plus grande, cela nous indique que le modèle 1 réussit mieux à ajuster les données que le modèle 2.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans SAS :

Comment effectuer une régression linéaire simple dans SAS
Comment effectuer une régression linéaire multiple dans SAS
Comment effectuer une régression logistique dans SAS

Ajouter un commentaire

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