coter ROC in R avec ROCR vs pROC
je trace un graphique des ROCs et je mesure l'AUC partielle comme métrique de la qualité du modèle de niche écologique. Comme je travaille en R, j'utilise les paquets ROCR et pROC. Je m'en contenterai, mais pour l'instant, je voulais voir comment ils fonctionnaient, et si l'un d'eux répondait mieux à mes besoins.
une chose qui me confond, c'est que, en traçant un ROC, les axes sont les suivants:
ROCR
x axis: 'true positive rate' 0 -> 1
y axis: 'false positive rate', 0 -> 1
pROC
x axis: 'sensitivity' 0 -> 1
y axis: 'specificity' 1 -> 0.
mais si je trace le ROC en utilisant les deux méthodes, ils semblent identiques. Donc, je veux juste confirmer que:
true positive rate = sensitivity
false positive rate = 1 - specificity.
Voici un exemple reproductible:
obs<-rep(0:1, each=50)
pred<-c(runif(50,min=0,max=0.8),runif(50,min=0.3,max=0.6))
plot(roc(obs,pred))
ROCRpred<-prediction(pred,obs)
plot(performance(ROCRpred,'tpr','fpr'))
3 réponses
pour confirmer, vous avez raison dans ce taux de vrai positif = sensibilité et taux de faux positif = 1-spécificité. Dans votre exemple, l'ordre dans lequel vous tracez les composants de L'objet de performance ROCR à partir de ROCR
package est la clé. À la dernière ligne, la première mesure du rendement, le taux de véritable positif, " tpr " est tracée sur l'axe des y measure = 'tpr'
et la deuxième mesure de performance, taux de faux positifs, est tracée sur l'axe des x x.measure = 'fpr'
plot(performance(ROCRpred, measure = 'tpr', x.measure = 'fpr'))
Juste pour dire, pour le pROC
package si vous inclure les éléments suivants dans votre parcelle de terrain de code:
plot(roc(obs,pred), legacy.axes = TRUE)
puis on finit avec un axe X inversé.
autant Que je sache:
TPR = sensitivity = TP/(TP/FN) -> y axis: [0, 1]
FPR = 1 - specificity = 1 - (TN/(FP+TN)) -> x axis: [0, 1]
mais, lorsque le graphique montre la spécificité (taux négatif réel) dans l'axe des x, alors l'intervalle est de [1, 0].
Dans les deux cas, le graphique est la même.
Vous pouvez le vérifier ici dans la page de wikipedia.