Mis a jour le 2016-05-22, 16:22

Courbe ROC

Courbe ROC : Receiver Operating Characteristic Curve (car a été créée au cours de recherches pour établir des signaux radios au milieu du bruit). On peut en générer grâce au package ROCR
Spécificité et sensibilité : avec
Principe de la courbe ROC : si le test donne un résultat numérique avec un seuil t tel que la prédiction est positive si x > t, et la prédiction est négative si x < t, alors au fur et à mesure que t augmente : La courbe ROC représente l'évolution de la sensibilité (taux de vrais positifs) en fonction de 1 - spécificité (taux de faux positifs) quand on fait varier le seuil t.
fonction prediction : construit un object de la classe prediction à partir des scores de prédiction obtenus et de la classe réelle :
library(ROCR)
fr <- data.frame(score = c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.71, 0.36),
                 label = c(1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0))
pred <- prediction(fr$score, fr$label)
Un objet de la classe prediction a notamment les attributs suivants :
Traçage d'une courbe ROC :
On calcule un objet de la classe performance avec comme variable y le taux de vrais positifs (TPR) et comme variable x le taux de faux positifs (FPR) :
library(ROCR)
fr <- data.frame(score = c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.71, 0.36),
                 label = c(1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0))
pred <- prediction(fr$score, fr$label)
perf <- performance(pred, "tpr", "fpr")
plot(perf)
On peut utiliser les paramètres suivants dans le plot :
Autres indicateurs de performance : Indicateurs de performance disponibles (liste partielle) :
Calcul de l'AUC :
library(ROCR)
fr <- data.frame(score = c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.71, 0.36),
                 label = c(1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0))
pred <- prediction(fr$score, fr$label)
perf <- performance(pred, "auc")
perf@y.values[[1]]
donne :
0.7

Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R