18 votos

¿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 mesa es

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

6 votos

No tengo claro que pueda haber una respuesta útil a esta pregunta. La curva de características operativas del receptor (ROC) representa la gama de compensaciones entre las clasificaciones de verdaderos y falsos positivos a medida que uno altera el umbral para hacer esa elección del modelo. Una tabla de contingencia representa los resultados de la clasificación en un elección particular de ese umbral. Se podría calcular algo así como un área (como hace una respuesta propuesta aquí), pero no está claro que eso represente realmente el área bajo la curva ROC para el modelo completo.

1 votos

Si su predictor es dicotómico y, por tanto, sólo hay un umbral, creo que el AUC sigue proporcionando (cierta) información útil.

0 votos

@JeremyMiles por favor proporcione un ejemplo no trivial del predictor donde sólo existe un umbral.

35voto

Calimo Puntos 528

En el caso general: no se puede

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

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

Los clasificadores binarios no son realmente binarios. Aunque sólo expongan una decisión binaria final, todos los clasificadores que conozco se basan en alguna estimación cuantitativa bajo el capó.

  • ¿Un árbol de decisión binario? Intenta construir un árbol de regresión.
  • ¿Un clasificador SVM? Haga una regresión de vectores de apoyo.
  • ¿Regresión logística? Acceda a las probabilidades brutas.
  • ¿Red neuronal? Utilice la salida numérica de 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 escenario, y cualquier comparación con un clasificador continuo será inexacta y engañosa.

¡Sólo dame la respuesta!

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

A ROC curve with a single (SP, SE) pair and two triangles

Podemos obtener sus áreas en base a la tabla de contingencia (A, B, C y D, tal y como has definido):

$$ \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*} $$

Conseguir 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

Técnicamente se puede calcular un AUC ROC para un clasificador binario a partir de la matriz de confusión. Pero, por si acaso no lo he dejado claro, permíteme repetirlo 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 operativas receptoras correlacionadas: A Nonparametric Approach. Biometrics 1988,44:837-845. https://www.jstor.org/stable/2531595

0 votos

Este ejemplo con un solo punto puede ser realmente engañoso. Por ejemplo, tener un punto en (1, 0) dará como resultado AUC=1 según sus cálculos. El área bajo el punto es siempre cero. Si realmente necesita resumir la tabla de contingencia, utilice la puntuación f1 o la información.

1 votos

@PavelTyshevskyi La curva ROC es siempre una curva, nunca un único punto. Recuerda que muestra la 1-especificidad, que es probablemente lo que te confunde.

0 votos

@PavelTyshevskyi Quiero decir (1, 0) es en realidad 0 especificidad 0 sensibilidad, por lo que el AUC será 0 como se esperaba.

2voto

Chris Komuves Puntos 11

Cuando afirmo que todas son negativas, entonces la sensibilidad (y) = 0, 1 - la especificidad (x) = 0. Si afirmo que son positivas/negativas según los resultados de las pruebas, entonces y =A/(A+C), x=B/(B+D). Si digo que todos son positivos, entonces y = 1 y x = 1.

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

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X