Área sob a aproximação da curva ROC
Eu queria calcular a área sob a curva ROC para um modelo de regressão logística no contexto da classificação binária. Para isso, calculei, para uma lista de limiares, digamos 0,1 0,2 ... 0,9, o TPR e o FPR. Eu tenho assim
(TPR_threshold1, ... TPR_thresholdN)
(FPR_threshold1, ... FPR_thresholdN)
Posso apenas fazer
TPR_threshold1*FPR_threshold1 + ... + TPR_thresholdN*FPR_thresholdN
para calcular a área sob a curva roc ou preciso de alguma modelagem matemática mais elaborada?
Muito obrigado!
Respostas
Os limites não importam; o que importa são os valores (FPR, TRP) nesses limiares, pois são pontos da curva. Classifique-os por FPR crescente. Para que isso funcione, você deve incluir os pontos (0,0) e (1,1) em sua lista, correspondendo aos limiares 1 e 0.
Você pode usar uma aproximação trapezoidal, pois cada par sucessivo de pontos define um trapézio de área sob a curva. Você só vai somar as áreas.
Vamos pegar dois pontos sucessivos (FPR1, TPR1) e (FPR2, TPR2). A área é (FPR2 - FPR1) * (TPR1 + TPR2) / 2. Basta somar isso sobre todos os pares sucessivos de pontos.
Obviamente, a maioria das bibliotecas pode calcular isso para você a partir dessa entrada, como o scikit-learn.