Análisis Predictivo de la Mortalidad por Enfermedades Infecciosas Usando Datos Epidemiológicos

Intrducción

En este trabajo se desarrolla un análisis de clasificación en el ámbito de la salud pública internacional, con enfoque en la relación entre enfermedades infecciosas y el número de muertes registradas en distintos países durante el año 2021. La base de datos utilizada fue construida por el grupo, tomando como unidad de análisis los países, y considerando un conjunto de diez variables cuantitativas que representan la cantidad de contagios por diversas enfermedades. A partir de estos datos, se define una variable objetivo cuantitativa, el número total de muertes, que es transformada en una variable binaria con el fin de aplicar técnicas de clasificación. El análisis tiene una exploración visual de la relación entre la variable binaria y las variables explicativas, permitiendo identificar patrones y posibles hipótesis sobre qué enfermedades tienen mayor impacto en la clasificación de un país como de alta o baja mortalidad. Posteriormente, los datos se dividen en conjuntos de entrenamiento y prueba de manera estratificada, para asegurar un balance adecuado de clases.

Metodología

La base de datos construida para este análisis incluye información de distintos países como unidades de observación. Se seleccionaron diez variables cuantitativas que representan el número de contagios por diferentes enfermedades infecciosas como ejemplo, VIH, tuberculosis, sífilis, etc. Además, se incluyó la variable Muertes, que indica la cantidad total de muertes por enfermedades infecciosas en cada país durante el año 2021.

A partir de esta variable continua, Muertes, se creó la variable binaria objetivo Muertes_Nivel para realizar el análisis de clasificación. Esta variable toma dos niveles:

  • Alto: si el número de muertes es mayor que el promedio de contagios registrados en ese país.

  • Bajo: si el número de muertes es menor o igual al promedio de contagios.

Esta regla de dicotomización se justifica porque permite comparar el número de muertes con la magnitud de los contagios en cada país, lo que puede reflejar la eficacia del sistema de salud o el grado de severidad de las enfermedades en la población.

Se aplicaron dos modelos de clasificación supervisada para predecir la variable Muertes_Nivel:

  • K-Nearest Neighbors (kNN: Este modelo clasifica una observación según la categoría más común de sus k vecinos más cercanos en el espacio de características. Se probaron distintos valores de k y se seleccionó el que maximizó la precisión sobre los datos de validación.

  • Árboles de decisión (rpart): Este modelo divide recursivamente los datos en subconjuntos basándose en reglas de decisión simples, generando un árbol donde cada nodo interno representa una condición sobre una variable y las hojas representan una predicción de clase.

El modelo sigue una estructura del tipo: Si VIH < 1000 y Tuberculosis > 500 = Alto.

El árbol fue entrenado tanto con rpart básico como con caret para automatizar la validación cruzada.

La base se dividió en conjuntos de entrenamiento (75%) y prueba (25%), que asegura un balance de clases en ambos subconjuntos.

Las variables explicativas fueron estandarizadas para el modelo kNN, que es sensible a la escala.

Se evaluó el desempeño de los modelos con matriz de confusión y curva ROC, para medir la precisión.

Resultados Descriptivos

La tabla interactiva presentada muestra los datos recopilados para distintos países, incluyendo el número de muertes atribuidas a diversas enfermedades infecciosas, tales como COVID-19, tuberculosis, VIH/SIDA, sífilis, gonorrea, clamidia, herpes genital, VPH y tricomoniasis. Además, se incluye una variable llamada Muertes_Nivel, que clasifica cada país en uno de dos niveles (“Alto” o “Bajo”) según si el número de muertes por enfermedades infecciosas supera el promedio general de contagios registrados. Este enfoque nos permite analizar los datos desde una perspectiva de clasificación binaria, simplificando la comparación entre países con mayor y menor impacto en términos de mortalidad. La tabla también sirve como base para explorar visualmente posibles patrones entre las variables explicativas y la variable objetivo, permitiendo posteriormente alimentar modelos de clasificación supervisada como kNN y árboles de decisión.

El gráfico de caja permite observar cómo varía la cantidad de contagios de distintas enfermedades infecciosas entre países con niveles altos y bajos de muertes.

  • Tuberculosis y VIH son de las pocas enfermedades en las que se observa una ligera diferencia de medianas entre grupos. En la primera los países con muertes altas tienden a tener un número levemente superior de contagios de tuberculosis. En la segunda es al contrario.

  • En enfermedades como VPH, Sifilis, Herpes, Clamidia y Tricomoniasis, se aprecia una gran variabilidad entre países, pero no se evidencia una diferencia clara entre los grupos “Alto” y “Bajo”. La distribución es muy dispersa y con muchos valores atípicos.

En general, no se observan patrones consistentes que indiquen que mayores contagios de una enfermedad específica estén asociados directamente con niveles más altos de muertes. Según esto, las muertes podrían estar influenciadas por una combinación de enfermedades o por factores externos como el sistema de salud y el acceso a tratamiento.

Modelo kNN

El gráfico muestra cómo varía la precisión del modelo kNN en función del número de vecinos k considerados para la clasificación. En el eje X se representan los valores de k, mientras que el eje Y indica la precisión del modelo, es decir, la proporción de predicciones correctas.

Para valores bajos de k (entre 1 y 3), se observa una alta variabilidad en la precisión, lo que sugiere que el modelo es más sensible al ruido en los datos cuando utiliza pocos vecinos. A partir de k = 4, la precisión comienza a estabilizarse, aunque con algunas oscilaciones. El valor máximo de precisión (100%) se alcanza en k = 12, lo que sugiere que este es el valor óptimo para k en este conjunto de datos.

Después de k = 12, la precisión desciende ligeramente y se estabiliza alrededor del 91% para valores de k entre 13 y 30. Esto indica que el modelo se vuelve más robusto y menos sensible a casos individuales, aunque también puede perder cierta capacidad para captar patrones más específicos.

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Alto Bajo
##       Alto    0    2
##       Bajo    2   18
##                                           
##                Accuracy : 0.8182          
##                  95% CI : (0.5972, 0.9481)
##     No Information Rate : 0.9091          
##     P-Value [Acc > NIR] : 0.9559          
##                                           
##                   Kappa : -0.1            
##                                           
##  Mcnemar's Test P-Value : 1.0000          
##                                           
##             Sensitivity : 0.00000         
##             Specificity : 0.90000         
##          Pos Pred Value : 0.00000         
##          Neg Pred Value : 0.90000         
##              Prevalence : 0.09091         
##          Detection Rate : 0.00000         
##    Detection Prevalence : 0.09091         
##       Balanced Accuracy : 0.45000         
##                                           
##        'Positive' Class : Alto            
## 

El modelo evaluado mostró un desempeño limitado en la detección de la clase Alto. Aunque la precisión accuracy fue del 81.8%, esta se debe principalmente al buen desempeño en la clasificación de la clase Bajo. La sensibilidad fue del 0%, lo que indica que el modelo no identificó correctamente ningún caso de nivel de muertes Alto. Por otro lado, la especificidad fue del 90%, lo que refleja una buena capacidad para detectar correctamente los casos Bajo. La precisión positiva también fue del 0%, evidenciando una total incapacidad para predecir correctamente la clase Alto. Estos resultados, junto con un valor de Kappa negativo (-0.1), sugieren que el modelo no supera el azar al identificar la clase crítica, lo que lo hace inadecuado para aplicaciones donde la detección de casos Alto es prioritaria.

Modelo rpart básico

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Alto Bajo
##       Alto    2    6
##       Bajo    0   14
##                                           
##                Accuracy : 0.7273          
##                  95% CI : (0.4978, 0.8927)
##     No Information Rate : 0.9091          
##     P-Value [Acc > NIR] : 0.99744         
##                                           
##                   Kappa : 0.2979          
##                                           
##  Mcnemar's Test P-Value : 0.04123         
##                                           
##             Sensitivity : 1.00000         
##             Specificity : 0.70000         
##          Pos Pred Value : 0.25000         
##          Neg Pred Value : 1.00000         
##              Prevalence : 0.09091         
##          Detection Rate : 0.09091         
##    Detection Prevalence : 0.36364         
##       Balanced Accuracy : 0.85000         
##                                           
##        'Positive' Class : Alto            
## 

El modelo de árbol de decisión (rpart) fue entrenado para predecir el nivel de muertes a partir de variables seleccionadas, excluyendo Muertes y Promedio_Contagios. Al evaluar el modelo sobre el conjunto de prueba, se obtuvo una precisión global del 72.7%, con una sensibilidad perfecta (1.00) para la clase Alto, lo que indica que todos los casos reales de nivel alto de muertes fueron correctamente identificados. Sin embargo, la precisión para esta clase fue baja (0.25), debido a un número considerable de falsos positivos, es decir, casos clasificados como Alto cuando en realidad eran Bajo.

Esto sugiere que, aunque el modelo es bueno detectando todos los casos críticos, tiende a sobreestimar el riesgo, clasificando erróneamente algunos casos de bajo nivel como altos. Además, el valor de Kappa (0.2979) y el resultado del test de McNemar (p = 0.04123) indican que el modelo presenta un sesgo y que su desempeño no es mucho mejor que una clasificación al azar.

Modelo rpart con caret

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Alto Bajo
##       Alto    2    6
##       Bajo    0   14
##                                           
##                Accuracy : 0.7273          
##                  95% CI : (0.4978, 0.8927)
##     No Information Rate : 0.9091          
##     P-Value [Acc > NIR] : 0.99744         
##                                           
##                   Kappa : 0.2979          
##                                           
##  Mcnemar's Test P-Value : 0.04123         
##                                           
##             Sensitivity : 1.00000         
##             Specificity : 0.70000         
##          Pos Pred Value : 0.25000         
##          Neg Pred Value : 1.00000         
##              Prevalence : 0.09091         
##          Detection Rate : 0.09091         
##    Detection Prevalence : 0.36364         
##       Balanced Accuracy : 0.85000         
##                                           
##        'Positive' Class : Alto            
## 

En este caso, se entrenó un modelo de árbol de decisión utilizando caret, que permite realizar un ajuste más automatizado y optimizado mediante validación cruzada. A pesar de utilizar esta estrategia de entrenamiento, los resultados obtenidos en la matriz de confusión son exactamente los mismos que en el modelo anterior. Una precisión global de 72.7%, sensibilidad perfecta (1.00) para la clase Alto y una precisión de solo 25% para dicha clase, debido a múltiples falsos positivos. Esto indica que el ajuste automático no logró una mejora significativa en el desempeño del modelo, posiblemente por las mismas limitaciones observadas previamente, como el desbalance entre las clases. El valor de Kappa (0.2979) y el resultado del test de McNemar (p = 0.04123) refuerzan que el modelo presenta cierto sesgo y una capacidad limitada para generalizar correctamente en presencia de datos desbalanceados.

Modelo kNN con caret

El gráfico muestra cómo varía la precisión del modelo de kNN en función del número de vecinos k utilizados durante el entrenamiento. La mayor precisión se obtiene con valores de k bajos como 5. Esto indica que, con pocos vecinos, el modelo se ajusta bien a los datos de entrenamiento, pero esto también podría aumentar el riesgo de sobreajuste. A medida que k aumenta, la precisión disminuye hasta un mínimo alrededor de k = 20, donde alcanza su peor rendimiento. A partir de ahí, la precisión comienza a recuperarse y estabilizarse para valores de k mayores a 30. Esto puede indicar que el modelo se vuelve más general y menos sensible al ruido, aunque no mejora significativamente después de cierto punto.

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Alto Bajo
##       Alto    2    3
##       Bajo    0   17
##                                           
##                Accuracy : 0.8636          
##                  95% CI : (0.6509, 0.9709)
##     No Information Rate : 0.9091          
##     P-Value [Acc > NIR] : 0.8661          
##                                           
##                   Kappa : 0.5075          
##                                           
##  Mcnemar's Test P-Value : 0.2482          
##                                           
##             Sensitivity : 1.00000         
##             Specificity : 0.85000         
##          Pos Pred Value : 0.40000         
##          Neg Pred Value : 1.00000         
##              Prevalence : 0.09091         
##          Detection Rate : 0.09091         
##    Detection Prevalence : 0.22727         
##       Balanced Accuracy : 0.92500         
##                                           
##        'Positive' Class : Alto            
## 

Se utilizó el modelo kNN entrenado con validación cruzada para predecir el nivel de muertes en el conjunto de prueba. El modelo alcanzó una precisión del 86.36%, lo que representa una mejora respecto a los modelos anteriores. Además, logró una sensibilidad perfecta (1.00), es decir, detectó correctamente todos los casos reales de nivel Alto, y una especificidad del 85%, indicando un buen desempeño también al identificar correctamente los casos Bajo.

El valor de Kappa (0.5075) sugiere una moderada concordancia entre las predicciones del modelo y los valores reales, mejorando respecto a modelos anteriores. Aunque la precisión de predicción para la clase Alto es aún baja (0.40), refleja una reducción en los falsos positivos en comparación con los modelos previos. El test de McNemar no muestra evidencia de sesgo significativo (p = 0.2482), lo que indica un buen equilibrio en los errores. En conjunto, este modelo ofrece un mejor rendimiento general y mayor estabilidad para predecir niveles de muertes.

Curva ROC para kNN caret

El gráfico muestra la Curva ROC del modelo kNN, que representa la relación entre la Tasa de Verdaderos Positivos y la Tasa de Falsos Positivos a distintos umbrales de clasificación para la clase Alto. La curva se eleva rápidamente hacia la parte superior izquierda del gráfico, lo que indica un excelente rendimiento del modelo en la separación de clases. Este comportamiento sugiere que el modelo kNN es muy eficaz en identificar correctamente los casos positivos, muertes altas, sin cometer muchos errores al clasificar los negativos, muertes bajas.

Conclusiones

  • La creación de la variable binaria Muertes_Nivel a partir del número total de muertes en relación con el promedio de contagios por país permitió simplificar el análisis y aplicar modelos de clasificación. Esta dicotomización resultó útil para captar diferencias generales entre países con alta y baja mortalidad relativa, aunque puede ocultar matices importantes relacionados con contextos específicos de cada enfermedad o país.

  • A partir del análisis exploratorio, se evidenció que no hay una relación claramente visible entre el número de contagios de enfermedades específicas y el nivel de mortalidad. La alta dispersión y presencia de valores atípicos, dificultaron la identificación de patrones consistentes. Esto sugiere que factores adicionales, como la capacidad del sistema de salud, el acceso al tratamiento o condiciones socioeconómicas, podrían jugar un rol crucial.

  • El modelo kNN básico alcanzó una buena precisión general (91%), aunque mostró limitaciones al detectar correctamente los casos de muertes Altas, sensibilidad = 0.

  • El modelo rpart, básico y con caret, logró detectar todos los casos de muertes altas, sensibilidad = 1, pero a costa de una baja precisión positiva, indicando una alta tasa de falsos positivos.

  • El modelo kNN con caret fue el de mejor desempeño global, alcanzando una precisión del 86.36%, una sensibilidad perfecta y una especificidad del 85%, lo que indica un buen equilibrio en la clasificación. Además, obtuvo el mejor valor de Kappa, lo que sugiere una moderada concordancia entre predicción y realidad.

  • El uso de caret permitió automatizar el proceso de entrenamiento y mejorar la estabilidad del modelo, aunque en el caso de rpart no se observaron mejoras significativas respecto al modelo sin validación cruzada. En cambio, sí fue clave para mejorar el rendimiento del modelo kNN.

Bibliografia