¿Cuál es la fórmula para calcular el área bajo la curva ROC a partir de una tabla de contingencia?

Por ejemplo, si mi tabla es:

 True Value (gold standard) Positive | Negative | | | | | Test | Pos | A | B | Result | | | | | Neg | C | D | | | | | 

Comentarios

  • No tengo ' claro que pueda haber una respuesta útil a esta pregunta. La curva de característica operativa del receptor (ROC) representa el rango de compensaciones entre las clasificaciones de verdaderos positivos y falsos positivos a medida que se altera el umbral para hacer esa elección del modelo. Una tabla de contingencia representa los resultados de la clasificación en una elección particular de ese umbral. Es posible que se pueda calcular algo como un área (como hace una respuesta propuesta aquí), pero ' no está claro que realmente represente el área bajo la curva ROC para el modelo completo. .
  • Si su predictor es dicotómico y, por lo tanto, solo hay un umbral, creo que las AUC todavía proporcionan (alguna) información útil.
  • @JeremyMiles, proporcione un ejemplo no trivial de el predictor donde solo existe un umbral.
  • @PavelTyshevskyi – seguro. (Olvidé cuál fue el contexto para esta pregunta). Trabajo con evaluadores que clasifican anuncios. Un ejemplo es la pornografía (que es mala). Preguntamos a los evaluadores " ¿Este anuncio es para pornografía? " Dicen que sí o no.

Respuesta

En el caso general: puede «t

La curva ROC muestra cómo la sensibilidad y la especificidad varían en todos los umbrales posibles . Se ha calculado una tabla de contingencia en un único umbral y se ha perdido información sobre otros umbrales. Por lo tanto, no se puede calcular la curva ROC a partir de estos datos resumidos.

Pero mi El clasificador es binario, así que tengo un único umbral

Los clasificadores binarios no son realmente binarios. A pesar de que pueden exponer sólo una decisión binaria final, todos los clasificadores que conozco se basan en una estimación cuantitativa oculta.

  • ¿Un árbol de decisión binario? Intente construir un árbol de regresión.
  • ¿Un clasificador SVM? ¿Realice una regresión vectorial de soporte?
  • ¿Regresión logística? Obtenga acceso a las probabilidades brutas.
  • ¿Red neuronal? Utilice la salida numérica de t la última capa en su lugar.

Esto le dará más libertad para elegir el umbral óptimo para llegar a la mejor clasificación posible para sus necesidades.

Pero realmente quiero

Realmente no deberías. Las curvas ROC con pocos umbrales subestiman significativamente el área real bajo la curva (1). Una curva ROC con un solo punto es el peor de los casos, y cualquier comparación con un clasificador continuo será inexacta y engañosa.

¡Solo dame la respuesta!

Ok, ok , tú ganas. Con un solo punto podemos considerar el AUC como la suma de dos triángulos T y U:

Una curva ROC con un solo par (SP, SE) y dos triángulos

Podemos obtener sus áreas en función de la tabla de contingencia (A, B, C y D como lo definió):

$$ \ begin {align *} T = \ frac {1 \ times SE} {2} & = \ frac {SE} {2} = \ frac {A} {2 (A + C)} \\ U = \ frac {SP \ times 1} {2} & = \ frac {SP} {2} = \ frac {D} {2 (B + D)} \ end {align *} $$

Obteniendo el AUC: $$ \ begin {align *} AUC & = T + U \\ & = \ frac {A} {2 (A + C)} + \ frac {D} {2 (B + D)} \\ & = \ frac {SE + SP} {2} \ end { align *} $$

Para concluir

Puede calcular técnicamente un AUC ROC para un clasificador binario a partir de la matriz de confusión. Pero en caso de que no me quede claro, permíteme repetir una última vez: ¡NO LO HAGAS!

Referencias

(1) DeLong ER, DeLong DM, Clarke-Pearson DL: Comparación de las áreas bajo dos o más curvas de características operativas del receptor correlacionadas: un enfoque no paramétrico. Biometrics 1988, 44: 837-845. https://www.jstor.org/stable/2531595

Comentarios

  • Este ejemplo con un solo punto puede ser realmente engañoso. Por ejemplo, tener un punto en (1, 0) dará como resultado AUC = 1 de acuerdo con sus cálculos. El área debajo del punto es siempre cero. Si realmente necesita resumir la tabla de contingencia, use la puntuación f1 o la información.
  • @PavelTyshevskyi La curva ROC es siempre una curva, nunca un solo punto. Recuerde que muestra especificidad 1, que es probablemente lo que le confunde.
  • @PavelTyshevskyi Quiero decir (1, 0) es en realidad 0 especificidad 0 sensibilidad, por lo que el AUC será 0 como se esperaba.
  • Usted ' tiene razón, yo ' me confundí con el eje. Todavía no ' t suena bien con (0, 0) y (1, 1) que se utilizan para construir un área junto con se, sp a partir de la matriz de contingencia, de alguna manera. Gracias por la aclaración.
  • @PavelTyshevskyi, ¿podrías ser un poco más específico? La respuesta es correcta, y creo que señalo claramente por qué no debe ' hacerlo en primer lugar. Pero te aseguro que es absolutamente correcto.

Responder

Cuando afirmo que todos son negativos, entonces sensibilidad (y) = 0, 1 – especificidad (x) = 0. Si declaro positivo / negativo según los resultados de la prueba, entonces y = A / (A + C), x = B / (B + D). Cuando digo que todos son positivos, entonces y = 1 y x = 1.

Basado en tres puntos con coordenada (0,0) (A / (A + C), B / (B + D)) (1,1), (en orden (y, x)), es fácil calcular el área bajo la curva usando la fórmula para el área del triángulo.

Resultado final: Area = $ \ frac {AB + 2AD + 2CD} {(A + C) (B + D)} $ ? Necesita ser verificado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *