4 votos

¿Cómo determinaron estos investigadores el intervalo de confianza del AUROC utilizando el remuestreo pero sin volver a entrenar el modelo?

En este artículo de Nature con el respaldo de Google, los investigadores desarrollan y luego validan externamente un modelo de aprendizaje profundo para predecir el cáncer de pulmón mediante el uso de tomografías. En sus resultados de validación interna, podemos ver que incluyeron intervalos de confianza del 95% para su AUROC:

Fig.2a

En sus métodos, afirman:

Todos los intervalos de confianza se calcularon sobre la base de los percentiles de 1.000 remuestreos aleatorios (bootstraps) de los datos. Los intervalos de confianza Los intervalos de confianza para las diferencias se obtuvieron calculando la métrica de interés y luego calculando una diferencia lector-modelo en cada bootstrap. Los valores P para las comparaciones de sensibilidad y especificidad se calcularon mediante una prueba de permutación estándar utilizando 10.000 remuestreos aleatorios de los datos

Cuando leo cómo obtener intervalos de confianza utilizando el método bootstrap, lo que entiendo es que el modelo debe ser reentrenado para cada uno de los bootstrap, y que el estadístico se calcula para cada modelo reentrenado (y el modelo se aplica a los datos originales pre-bootstrap). Por ejemplo, la referencia. Esto implica que Google volvió a entrenar su modelo de aprendizaje profundo en un bootstrap de la muestra de entrenamiento 1000 veces para obtener estos intervalos. Parece mucho cálculo, pero es Google, así que vale. Hasta aquí todo bien.

Lo que no entiendo es cómo obtuvieron el intervalo de confianza para el AUROC en su estudio de validación externa que utilizó observaciones de otro centro:

Extended Data Fig. 5a

En su artículo afirman explícitamente

El modelo no fue entrenado ni ajustado utilizando este conjunto de datos.

En la descripción de la figura, dicen:

Curva AUC para el conjunto de pruebas de datos independientes con n = 1.739 casos utilizando una prueba de permutación de dos caras con 10.000 remuestreos aleatorios de los datos.

He buscado cómo hacer una prueba de permutación, pero no encuentro una referencia que muestre el procedimiento exacto a seguir cuando se utiliza para calcular un intervalo de confianza para la validez externa de un modelo de predicción.

¿Cuál es el procedimiento genérico (de aplicación) para obtener este intervalo de confianza?

Puedo imaginar dos posibles procedimientos:

Procedimiento 1:

  1. Volver a muestrear la muestra de prueba (con reemplazo, es decir, obtener un bootstrap)
  2. Aplicar el modelo de predicción para obtener estimaciones de riesgo
  3. Calcular la estadística
  4. Repite 1-3 n veces se utilizan los percentiles 0,025 y 0,975 de la estadística para obtener el IC del 95%.

Procedimiento 2:

  1. Calcule el AUC en la muestra de prueba original (llámelo AUROC_original)
  2. Permutar aleatoriamente las etiquetas de la muestra de prueba para romper la relación entre las características y las etiquetas
  3. Aplique el modelo a esta muestra y obtenga el AUROC (AUROC_i)
  4. Repite 2-3 n veces y luego utilizar la distribución de todos los n AUROC_i's (que asumo es la distribución de la hipótesis nula, es decir, los posibles valores de AUROC que obtendríamos si el modelo fuera inútil) para inferir la distribución alrededor de AUROC_original. Ni idea de si esto es válido o cómo se haría. Supongo que no se puede añadir simplemente la diferencia entre el percentil 50 y AUROC_original ya que el AUROC está acotado entre cero y uno. ¿Tal vez habría que utilizar las propiedades de, por ejemplo, la distribución binomial?

Cualquier ayuda (con referencias) se agradecería. Mi objetivo es poder crear intervalos de confianza para las estadísticas de un modelo de aprendizaje automático validado en una muestra externa grande. No quiero volver a entrenar el modelo en esta muestra externa porque me gustaría entender qué rendimiento tendría mi modelo si se generalizara allí, dado que los parámetros del modelo no están sujetos a cambios.

Otro caso de uso es la validación del rendimiento de un modelo propio que no puede ser reentrenado con datos locales. Imagínese un escenario en el que necesita el intervalo de confianza de varias estadísticas como la puntuación Brier, AUROC, AUPRC para poder comparar dos modelos propios.

2voto

FAYVICTORIA Puntos 1

Creo (pero no estoy seguro, para eso tendrás que preguntar a los autores) que puede ser más sencillo de lo que piensas. Incluso un modelo idéntico tiene un valor AUROC diferente según el conjunto de datos utilizado para calcularlo.

Supongamos que tenemos un conjunto de datos {x1,,xn} y algún modelo M . A continuación, podemos calcular su AUROC sobre este conjunto de datos:

AUROC(x1,,xn|M).

Sin embargo, también podemos calcular el AUROC sobre otro conjunto de datos {y1,yk} :

AUROC(y1,,yk|M).

Esto da un valor AUROC diferente para el mismo modelo. He ojeado el artículo sin leerlo en detalle, y lo que me ha parecido que han hecho los autores es:

  1. Utilizar un conjunto de datos de entrenamiento Dtr={x1,,xN} para entrenar un modelo M .
  2. Calcular el AUROC en el conjunto de datos de entrenamiento: AUROCtr=AUROC(x1,,xn|M).
  3. Crear 10.000 muestras bootstrap (Dtr,i)i=110000 del conjunto de datos de entrenamiento, es decir, para cada i , Dtr,i={xi,1,xi,n} es otra longitud N muestra creada por muestreo con reemplazo de Dtr .
  4. Para cada Dtr,i calcular el AUROC teniendo en cuenta el original modelo M : AUROCtr,i=AUROC(xi,1,xi,n|M). Estos se utilizan para construir los intervalos de confianza para el AUROC de entrenamiento. Creo que, en el documento, sólo utilizaron los valores 250 y 9.750 más altos para obtener un intervalo de confianza del 95%.
  5. Dado un conjunto de datos de validación {y1,,yk} Repita los pasos 2-4 para obtener los AUROC de validación: AUROCval=AUROC(y1,yk|M). AUROCval,i=AUROC(yi,1,yi,k|M). Utilice los de abajo para obtener intervalos de confianza.

Todo esto puede hacerse sin necesidad de reentrenar el modelo (algo que no encuentro en mi breve exploración del documento). Es más o menos el primer procedimiento que sugieres, excepto que el modelo nunca se reentrena ni siquiera en las muestras de entrenamiento bootstrap.

¿Le parece plausible? Por supuesto, ¡siempre puedes preguntar a los autores! :)

0 votos

También me parece confuso porque en muchos otros sitios vuelven a entrenar el modelo en cada muestra bootstrap y evalúan en los puntos no seleccionados (probablemente inspirados en el método random forest). Es factible para algo como la regresión lineal pero para nada para el aprendizaje profundo. El enfoque que mencionas es más razonable pero no encuentro una buena fuente que justifique su uso.

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