Solución:
El paquete ROCR calculará el AUC entre otras estadísticas:
auc.tmp <- performance(pred,"auc"); auc <- as.numeric([email protected])
Con el paquete pROC
puedes usar la función auc()
como este ejemplo de la página de ayuda:
> data(aSAH)
>
> # Syntax (response, predictor):
> auc(aSAH$outcome, aSAH$s100b)
Area under the curve: 0.7314
Como han mencionado otros, puede calcular el AUC utilizando el paquete ROCR. Con el paquete ROCR también puede trazar la curva ROC, la curva de elevación y otras medidas de selección del modelo.
Puede calcular el AUC directamente sin utilizar ningún paquete utilizando el hecho de que el AUC es igual a la probabilidad de que un verdadero positivo obtenga una puntuación mayor que un verdadero negativo.
Por ejemplo, si pos.scores
es un vector que contiene una puntuación de los ejemplos positivos, y neg.scores
es un vector que contiene los ejemplos negativos, entonces el AUC se aproxima por:
> mean(sample(pos.scores,1000,replace=T) > sample(neg.scores,1000,replace=T))
[1] 0.7261
dará una aproximación de las AUC. También puede estimar la varianza del AUC mediante bootstrapping:
> aucs = replicate(1000,mean(sample(pos.scores,1000,replace=T) > sample(neg.scores,1000,replace=T)))