Prediccion de COVID19 con aprendizaje de maquina. Exactitud o precision.

Prediccion de COVID19 con aprendizaje de maquina. Exactitud o precision.

Un algoritmo para encontrar relaciones entre las características de una persona y la posibilidad de que dé positivo en la prueba de COVID-19 podría asistir la atención de llamadas de quienes sospechan tener la enfermedad, así como la evaluación de cuestionarios llenados en línea. Esto a fin de priorizar la consulta médica y la aplicación de la prueba a los casos con mayor probabilidad de dar positivo. Por ello decidí aplicar algunas técnicas de clasificación con aprendizaje de máquina a la base de casos estudiados que publica la Secretaría de Salud en su página de datos abiertos.

La clasificación con aprendizaje de máquina (ML por sus siglas en inglés) es un área de la inteligencia artificial (IA) que, a partir de muchísimos ejemplos con varios atributos (como los datos de los casos estudiados de COVID19), así como de una categoría asociada a cada ejemplo (como el resultado positivo o negativo de la prueba), busca encontrar patrones y relaciones para predecir la categoría a la que pertenecen nuevos ejemplos.

Con este ejercicio podremos conocer, de manera simplificada, cuál es el proceso para desarrollar una herramienta de clasificación, qué técnicas hay para llevarla a cabo, así como uno de los aspectos clave a decidir durante el diseño e implementación de una herramienta de este tipo, el cual da origen a muchas de las discusiones sobre las implicaciones sociales y éticas del uso de la IA y el ML.

En los últimos años han aumentado las técnicas disponibles para hacer clasificación con ML, por lo que usé un grupo representativo de ellas: 4 técnicas muy conocidas (Regresión logística, Máquinas de soporte vectorial, Árboles de decisión y K-vecinos cercanos), 4 algoritmos de ensamble, que combinan los resultados de varios ejercicios con un mismo modelo (Bosque Aleatorio, AdaBoost, Gradient Boosting y XGBoost), y una red neuronal profunda de 3 capas ocultas con 1,024 nodos cada una (lee nuestro blog sobre la clasificación y cómo funcionan sus diversas técnicas).

El desarrollo de un sistema de ML consta de tres etapas básicas:

  1. Limpieza y preprocesamiento. Se ponen los atributos en el formato requerido por el algoritmo y se decide el tratamiento de los datos faltantes.
  2. Entrenamiento y validación. Se varían los parámetros del algoritmo para hallar la configuración que da los mejores resultados según la métrica de evaluación elegida.
  3. Prueba. Se aplica el algoritmo a un grupo de ejemplos no utilizados antes, y se obtiene la evaluación final de los resultados.

Como analizamos en nuestro blog anterior, en general la base de datos publicada por la Secretaría de Salud está completa y es consistente. Luego de la limpieza y preprocesamiento, seleccioné 19 atributos: 3 relacionados con la atención del caso, 4 sociodemográficos y 12 de otros padecimientos presentes (comorbilidad).

Atributos_clasificacion_COVID-19jpg

Para entrenar los algoritmos usé 30,157 resultados positivos y 68,878 resultados negativos de la prueba de COVID-19 registrados en la base de datos del 8 de mayo de 2020, todos con datos completos. Para probar los mejores modelos obtenidos de cada técnica, utilicé 12,987 nuevos resultados positivos y 17,585 resultados negativos que aparecen con datos completos en la base del 15 de mayo y que no estaban en la anterior.

Muchos de los indicadores para evaluar qué tan buenas son las predicciones de un algoritmo se basan en lo que se conoce como la matriz de confusión. Esta matriz define los conceptos para cuando las predicciones del algoritmo coinciden con el valor real (verdadero positivo y verdadero negativo) y para cuando no coinciden (falso positivo y falso negativo).


matriz_confusion_graljpg


Hay tres indicadores muy populares para evaluar un algoritmo:

  1. Exactitud. Nos dice el porcentaje de predicciones correctas del algoritmo. Es la suma de los verdaderos positivos y los verdaderos negativos dividida entre el total de casos.
  2. Precisión. Nos dice el porcentaje de predicciones positivas correctas. Es el número de verdaderos positivos entre el total de predicciones positivas.
  3. Sensibilidad. Nos dice el porcentaje de casos positivos reales que son predichos como tales. Es el número de verdaderos positivos entre el total de positivos reales.

Escoger cuál indicador usar no es un asunto menor, pues influye en las consecuencias que tendrá el uso de la aplicación sobre la vida de las personas. A pesar de ello, en ocasiones la decisión se deja sólo a los técnicos que diseñan o programan las herramientas, quienes pueden no estar preparados para hacer una evaluación de consecuencias, utilizan criterios meramente técnicos o eligen el indicador de moda.

El tema es delicado por las distintas consecuencias que pueden tener las predicciones erróneas de un algoritmo, pues no todos los errores son iguales. En el caso del sistema de clasificación que estamos analizando hay dos posibles errores: que el sistema prediga que una persona daría positivo en una prueba de COVID19 y en realidad daría negativo (falso positivo), o que el sistema prediga que daría negativo y en realidad daría positivo (falso negativo).

Si la herramienta es para canalizar a consulta médica a las personas que se comunican o rellenan un formulario, es obvio que queremos el menor número de errores, pero ¿qué es más importante evitar, canalizar a consulta muchas personas que darían negativo en la prueba, o no enviar a consulta a personas que darían positivo en la prueba?

En el primer caso, demasiados falsos positivos podrían generar una saturación de los servicios médicos, preocupación y estrés innecesario en las personas, así como costos adicionales en pruebas que al final resultarían negativas. En el segundo caso, los falsos negativos propiciarían desatender casos que podrían agravarse, disminuirían la confianza en el sistema y pudieran provocar reclamos de que se evita canalizar las personas a consulta.

Decidir cuál es el balance correcto no es sencillo y, en el caso de aplicaciones que involucran el acceso a servicios o temas con un alto impacto en la vida de las personas (tales como salud, educación y empleo), se requiere además definir quién debe tomar la decisión y cuál debe ser el proceso para llegar a ella.

La siguiente tabla presenta los resultados obtenidos por las 9 técnicas de clasificación en la predicción del resultado de la prueba de COVID19. Se muestran para cada técnica la matriz de confusión, así como los indicadores de exactitud, precisión y sensibilidad.

resultados_clasificacion_COVID19jpg

El mayor porcentaje de predicciones correctas se alcanza con la red neuronal profunda, que logró una exactitud de 68.9. Sin embargo, la sensibilidad (verdaderos positivos entre el total de casos positivos) es sólo 50.1. Se predijeron 6,476 casos como negativos que en realidad tuvieron un resultado positivo en la prueba.

Si quisiéramos escoger la técnica que arroja el menor número de falsos negativos, podríamos seleccionar la regresión logística, que presenta la sensibilidad más alta (84.8). Sin embargo, eso implicaría reducir la exactitud a 52.3 e incrementar los falsos positivos de los 3,018 que tuvo la red neuronal profunda a 10,048, más de 3.3 veces.

En mi opinión, el bosque aleatorio pudiera ser una buena elección, la exactitud de 68.0 no está muy lejos del máximo, en tanto que se tiene una sensibilidad de 68.6 y una precisión de 61.0. El número de falsos negativos son 38% menos de los obtenidos con la red neuronal y los falsos positivos son 43% menos de los que se tendrían con la regresión logística.

Utilizar herramientas de clasificación con ML para apoyar la toma de decisiones puede traer grandes beneficios. En este blog vimos cómo, a partir de información de la base de datos publicada por la Secretaría de Salud de México, un algoritmo de Bosque Aleatorio pudo predecir el resultado del examen de COVID19 en 20,791 de los 30,572 resultados reportados entre el 8 y el 15 de mayo. Además, pudo detectar el 69% de los casos positivo (Con mayor tiempo y recursos, seguramente podría configurarse un algoritmo que logre resultados superiores).

Pudimos constatar también que la selección del indicador adecuado para medir los resultados de un algoritmo es uno de los aspectos más delicados del desarrollo de un sistema. Se trata de una decisión que, si la importancia del tema lo amerita, debe ser tomada con transparencia y en un ambiente multidisciplinario que incluya a todas las partes interesadas (vale la pena leer el caso de un sistema para apoyar la evaluación de llamadas de denuncia de riesgos de maltrato a menores).

Las herramientas de IA y ML son un avance tecnológico impresionante que tiene el potencial de cambiar radicalmente para bien la forma en que hacemos las cosas. Sin embargo, su utilización en áreas que afectan la vida de las personas requiere que, durante su desarrollo e implementación, se discutan temas que rebasan el ámbito tecnológico, pero que son indispensables para minimizar los riesgos y asegurar el resultado que más beneficie a la sociedad.

¿Qué opinas? Comparte tus comentarios abajo. ¿Te gustó este artículo? Lee otros artículos de nuestro blog IF Inteligencia Futura aquí.

Visita nuestras secciones