Significación estadística (valor p) para comparar dos clasificadores con respecto al (promedio) ROC AUC, sensibilidad y especificidad

14

Tengo un conjunto de prueba de 100 casos y dos clasificadores.

Generé predicciones y calculé ROC AUC, sensibilidad y especificidad para ambos clasificadores.

Pregunta 1: ¿Cómo puedo calcular el valor p para verificar si uno es significativamente mejor que el otro con respecto a todos los puntajes (ROC AUC, sensibilidad, especificidad)?


Ahora, para el mismo conjunto de prueba de 100 casos, tengo asignaciones de funciones diferentes e independientes para cada caso. Esto se debe a que mis características son fijas pero subjetivas y provistas por múltiples (5) sujetos.

Entonces, evalué mis dos clasificadores nuevamente para 5 "versiones" de mi conjunto de prueba y obtuve 5 AUC ROC, 5 sensibilidades y 5 especificidades para ambos clasificadores. Luego, calculé la media de cada medida de rendimiento para 5 sujetos (AUC media ROC, sensibilidad media y especificidad media) para ambos clasificadores.

Pregunta 2: ¿Cómo puedo calcular el valor p para verificar si uno es significativamente mejor que el otro con respecto a las puntuaciones medias (AUC media ROC, sensibilidad media, especificidad media)?


Las respuestas con algún ejemplo de python (preferiblemente) o código MatLab son más que bienvenidas.

kostek
fuente
Haga una comparación directa de precisión, exactitud, AuC para obtener el mejor clasificador entre los dos. El valor P no tiene sentido aquí. El valor p se usa en el contexto de evaluar si el modelo funciona mejor que las asignaciones aleatorias / 50-50 (como una prueba de hipótesis nula / alternativa)
Nishad
2
Primero, no estoy de acuerdo en que la comparación de dos medidas de rendimiento utilizando el valor p no tenga sentido aquí. Veo que un clasificador tiene AUC 0.80 y el otro 0.85. Mi hipótesis nula sería que no hay diferencia en el rendimiento de ambos clasificados. Quiero saber si la diferencia es estadísticamente significativa.
kostek
2
En segundo lugar, no hago 5 versiones de mi modelo. Tengo dos modelos entrenados en un conjunto de entrenamiento separado y ahora los evalúo en 5 "versiones" diferentes de mi conjunto de prueba. Tengo un rendimiento medio para ambos clasificadores (por ejemplo, 0.81 AUC y 0.84 AUC) y quiero verificar si la diferencia es estadísticamente significativa.
kostek
1
No diría que lo que estoy haciendo está cerca de la validación cruzada. En mi caso, los valores de las características dependen del tema que las proporciona. Sé que AUC se puede usar para comparar modelos, pero quiero saber si, en mi contexto, el resultado de mi comparación es estadísticamente significativo. Estoy seguro de que se puede hacer y que tiene mucho sentido hacerlo. Mi pregunta es cómo hacerlo.
kostek
3
No estoy seguro de a qué se refiere @Nishad, puede y debe usar una prueba de hipótesis para determinar si sus modelos son significativamente diferentes entre sí. Las desviaciones estándar de sus métricas existen y se hacen más pequeñas a medida que aumenta el tamaño de la muestra (todas las demás cosas son iguales). Una diferencia de AUC entre 0.8 y 0.9 puede no ser significativa si solo tiene 10 muestras, pero podría ser muy significativa si tiene 10M de muestras. Tampoco veo ninguna relación con la validación cruzada. Votaría los comentarios si pudiera.
Nuclear Wang

Respuestas:

11

Wojtek J. Krzanowski y David J. Hand ROC Curves for Continuous Data (2009) es una gran referencia para todo lo relacionado con las curvas ROC. Reúne una serie de resultados en lo que es una base de literatura frustrantemente amplia, que a menudo utiliza una terminología diferente para discutir el mismo tema.

Además, este libro ofrece comentarios y comparaciones de métodos alternativos que se han derivado para estimar las mismas cantidades, y señala que algunos métodos hacen suposiciones que pueden ser insostenibles en contextos particulares. Este es uno de esos contextos; otras respuestas informan el método de Hanley y McNeil, que asume el modelo binormal para la distribución de puntajes, que puede ser inapropiado en casos donde la distribución de puntajes de clase no es (casi) normal. La suposición de puntajes distribuidos normalmente parece especialmente inapropiada en contextos modernos , los modelos comunes típicos como tienden a producir puntajes con una distribución de "bañera" para tareas de clasificación (es decir, distribuciones con altas densidades en los extremos cerca de 0 y 1 )

Pregunta 1 - AUC

La sección 6.3 discute las comparaciones de ROC AUC para dos curvas ROC (pp 113-114). En particular, entiendo que estos dos modelos están correlacionados, por lo que la información sobre cómo calcularr es críticamente importante aquí; de lo contrario, su estadística de prueba estará sesgada porque no tiene en cuenta la contribución de la correlación.

Para el caso de curvas ROC no correlacionadas que no se basan en suposiciones de distribución paramétricas, las estadísticas para las pruebas e intervalos de confianza que comparan AUC pueden basarse directamente en estimaciones y ^ AUC 2 de los valores de AUC, y estimaciones de sus desviaciones estándar S 1 y S 2 , como se indica en la sección 3.5.1:AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Para extender tales pruebas al caso en el que se utilizan los mismos datos para ambos clasificadores, debemos tener en cuenta la correlación entre las estimaciones de AUC:

z=AUC^1AUC^2S12+S22rS1S2

donde es la estimación de esta correlación. Hanley y McNeil (1983) hicieron tal extensión, basando su análisis en el caso binormal, pero solo dieron una tabla que muestra cómo calcular el coeficiente de correlación estimado r a partir de la correlación r P de los dos clasificadores dentro de la clase P, y la correlación de r n de los dos clasificadores dentro de la clase N, diciendo que la derivación matemática estaba disponible a pedido. Varios otros autores (por ejemplo, Zou, 2001) han desarrollado pruebas basadas en el modelo binormal, asumiendo que se puede encontrar una transformación apropiada que transformará simultáneamente las distribuciones de puntajes de las clases P y N a la normal.rrrPrn

DeLong et al (1988) aprovecharon la identidad entre AUC y el estadístico de prueba de Mann-Whitney, junto con los resultados de la teoría de las estadísticas generalizadas debidas a Sen (1960), para derivar una estimación de la correlación entre las AUC que no se basa en el supuesto binormal. De hecho, DeLong et al (1988) presentaron los siguientes resultados para las comparaciones entre k 2 clasificadores.Uk2

En la Sección 3.5.1, mostramos que el área bajo la curva empírica ROC era igual a la estadística Mann-Whitney , y fue dada porU

dondesPi,i=1,...,nPson el puntaje para losobjetos dela clasePysNj,j=1,...,nNson los puntajes para losobjetos declaseNen la muestra. Supongamos que tenemoskclasificadores, produciendo puntajess r N j ,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
sPi,i=1,,nPPsNj,j=1,,nNNk y s r P i , j = 1 , ... , n P [Corrigí un error de indexación en esta parte - Sycorax], y ^ A U C r , r = 1 , ... , k . DefinirsNjr,j=1nNsPir,j=1,,nPAUC^r,r=1,,k

y V r 01 =1

V10r=1nNj=1nN[I(sPir>sNjr)+12I(sPir=sNjr)],i=1,,nP
V01r=1nPi=1nP[I(sPir>sNjr)+12I(sPir=sNjr)],j=1,,nN

a continuación, defina la matriz W 10 con ( r , s ) th elemento w r , s 10 = 1k×kW10(r,s) y lamatrizk×kW01con(r,s)th elemento w r

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
k×kW01(r,s) Luego, la matriz de covarianza estimada para el vector( ^ A U C 1,, ^ A U C k
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
de las áreas estimadas debajo de las curvas es W = 1(AUC^1,,AUC^k)con elementoswr,s. Esta es una generalización del resultado para la varianza estimada de un AUC único estimado, también se da en la sección 3.5.1. En el caso de dos clasificadores, la correlación estimadarentrelos AUCestimados viene dada porw1,2
W=1nPW10+1nNW01
wr,sr que se pueden usar enzarriba.w1,2w1,1w2,2z

Como otras respuestas dan las expresiones de Hanley y McNeil para estimadores de varianza AUC, aquí reproduciré el estimador DeLong de p. 68:

sss1F(s)s1G(s)sNisNiPsNivar(sPiN)

AUC^

s2(AUC^)=1nPvar(sPiN)+1nNvar(sNiP)

FGFG

Zz

Este es un resumen simplificado de alto nivel de cómo funciona la prueba de hipótesis:

  • La prueba, en sus palabras, "si un clasificador es significativamente mejor que el otro" puede reformularse como prueba de la hipótesis nula de que los dos modelos tienen AUC estadísticamente iguales contra la hipótesis alternativa de que las estadísticas son desiguales.

  • Esta es una prueba de dos colas.

  • Rechazamos la hipótesis nula si el estadístico de prueba está en la región crítica de la distribución de referencia, que es una distribución normal estándar en este caso.

  • αz>1.96z<1.96α/21α/2

Pregunta 1 - Sensibilidad y especificidad

t

sensitivity=tp=P(sP>t)1specificity=fp=P(sN>t)

El punto de conflicto principal es desarrollar la prueba adecuada dado que las dos proporciones de la muestra estarán correlacionadas (ya que ha aplicado dos modelos a los mismos datos de prueba). Esto se aborda en la p. 111)

tpfpt(tp1tp2)/s12tpiis122tp1tp2

tp1tp2

N

tp1=tp2tp1tp2

Model 1 Positive at tModel 1 Negative at tModel 2 Positive at tabModel 2 Negative at tcd

a=i=1nPI(sPi1>t)I(sPi2>t)b=i=1nPI(sPi1t)I(sPi2>t)c=i=1nPI(sPi1>t)I(sPi2t)d=i=1nPI(sPi1t)I(sPi2t)

M=(bc)2b+c
χ12α=95%M>3.841459

sPirsNjr

Pregunta 2

Parece que es suficiente fusionar los resultados promediando los valores de predicción para cada encuestado, de modo que para cada modelo tenga 1 vector de 100 valores pronosticados promediados. Luego calcule las estadísticas de ROC AUC, sensibilidad y especificidad como de costumbre, como si los modelos originales no existieran. Esto refleja una estrategia de modelado que trata a cada uno de los modelos de los 5 encuestados como uno de un "comité" de modelos, algo así como un conjunto.

Sycorax dice reinstalar a Mónica
fuente
Gracias por su respuesta y referencias proporcionadas. ¿Qué pasa con los valores p de sensibilidad y especificidad?
kostek
Para Q1, ¿significa que no hay diferencia entre calcular el valor p para la sensibilidad y la especificidad y que ambos siempre tienen el mismo valor p y simplemente hago una tabla de contingencia y ejecuto la prueba de McNemar?
kostek
No, harías una prueba para cada uno.
Sycorax dice Reinstate Monica el
a,b,c,d
@Drey No son proporciones; Son cuentas. Hago esto explícito en una revisión.
Sycorax dice Reinstate Monica
2

Permítanme mantener la respuesta breve, porque esta guía explica mucho más y mejor .

nTPnTN

SEA=A(1A)+(nTP1)(Q1A2)+(nTN1)(Q2A2)nTPnTN

Q1=A/(2A)Q2=2A2/(1+A)

Para comparar dos AUC, debe calcular el SE de ambos utilizando:

SEA1A2=(SEA1)2+(SEA2)22r(SEA1)(SEA2)

rr=0

z

z=(A1A2)/SEA1A2

Desde allí, puede calcular el valor p utilizando la densidad de probabilidad de una distribución normal estándar. O simplemente usa esta calculadora.

Con suerte, esto responde a la pregunta 1 . - al menos la parte que compara las AUC. Sens / Spec ya está cubierto por el ROC / AUC de alguna manera. De lo contrario, la respuesta que creo radica en la pregunta 2.

En cuanto a la Pregunta 2 , el Teorema del límite central nos dice que su estadística resumida seguiría una distribución normal. Por lo tanto, creo que una prueba t simple sería suficiente (5 medidas de un clasificador contra 5 medidas del segundo clasificador donde las medidas podrían ser AUC, sens, spec)

SE2r

Drey
fuente
Gracias por los enlaces provistos. Para la pregunta 1, si configuro A como sensibilidad o especificidad, ¿se mantendrían las ecuaciones para SE y z-Score?
kostek
p^
0

Para la pregunta 1, @Sycorax proporcionó una respuesta integral.

Para la pregunta 2, que yo sepa, promediar las predicciones de los sujetos es incorrecto. Decidí usar bootstrapping para calcular los valores p y comparar modelos.

En este caso, el procedimiento es el siguiente:

For N iterations:
  sample 5 subjects with replacement
  sample 100 test cases with replacement
  compute mean performance of sampled subjects on sampled cases for model M1
  compute mean performance of sampled subjects on sampled cases for model M2
  take the difference of mean performance between M1 and M2
p-value equals to the proportion of differences smaller or equal than 0

Este procedimiento realiza una prueba de una cola y supone que M1 significa rendimiento> M2 rendimiento promedio.

En este repositorio de GitHub: https://github.com/mateuszbuda/ml-stat-util se puede encontrar una implementación de arranque de Python para calcular valores p que comparan varios lectores

kostek
fuente