Predicción de la Enfermedad Renal Crónica Una Perspectiva Fresca

Predicción de la Enfermedad Renal Crónica

Utilizando SHAP para construir un modelo interpretable que sea consistente con la literatura médica

Foto de Robina Weermeijer en Unsplash

Introducción

Los riñones trabajan duro para eliminar cualquier desecho, toxina y exceso de líquidos de la sangre, y su funcionamiento adecuado es crucial para una buena salud. La Enfermedad Renal Crónica (ERC) es una condición en la cual los riñones no pueden filtrar la sangre tan bien como deberían, lo que lleva a la acumulación de líquidos y desechos en la sangre, y a largo plazo puede derivar en insuficiencia renal. [1] La ERC afecta a más del 10% de la población mundial y se predice que será la quinta causa más importante de años de vida perdidos a nivel global para 2040. [2]

En este artículo, mi objetivo no era construir el modelo más preciso que pueda predecir la aparición de ERC en los pacientes. En cambio, fue verificar si el mejor modelo desarrollado utilizando algoritmos de aprendizaje automático estándar también es el modelo más significativo según la literatura médica. He utilizado los principios de SHAP (SHapley Additive exPlanations), un enfoque teórico de juegos para explicar la salida del modelo de aprendizaje automático.

¿Qué dice la Literatura Médica?

La literatura médica ha asociado el desarrollo y la progresión de la ERC con algunos síntomas clave.

  1. Diabetes mellitus e Hipertensión: La diabetes y la hipertensión son dos de los factores de riesgo más importantes asociados con la ERC. En un estudio realizado en los Estados Unidos de 2011 a 2014, se encontró que la prevalencia de la ERC (etapas 3-4) fue del 24,5% en diabéticos, del 14,3% en prediabéticos y del 4,9% en no diabéticos. En el mismo estudio, se observó que la prevalencia de la ERC fue del 35,8% en individuos hipertensos, del 14,4% en individuos prehipertensos y del 10,2% en individuos no hipertensos. [2]
  2. Disminución de los niveles de hemoglobina y glóbulos rojos: Los riñones producen una hormona llamada eritropoyetina (EPO), que ayuda en la producción de glóbulos rojos. En la ERC, los riñones no pueden producir suficiente EPO, lo que lleva al desarrollo de anemia, es decir, una disminución en el nivel de glóbulos rojos y, por lo tanto, de hemoglobina en la sangre. [3]
  3. Aumento de la creatinina sérica (sangre): La creatinina es un producto de desecho del desglose normal de los músculos y las proteínas, y el exceso se elimina de la sangre a través de los riñones. En la ERC, el riñón no puede eliminar eficazmente el exceso de creatinina, lo que provoca niveles altos en la sangre. [4]
  4. Disminución de la gravedad específica de la orina: La gravedad específica de la orina es un indicador de qué tan bien el riñón puede concentrar la orina. Los pacientes que sufren de ERC tienen una disminución de la gravedad específica de la orina, ya que los riñones pierden su capacidad de concentrar eficazmente la orina. [5]
  5. Hematuria y Albuminuria: Hematuria y Albuminuria se refieren a la presencia de glóbulos rojos y albúmina en la orina, respectivamente. Normalmente, los filtros en los riñones evitan que la sangre y la albúmina ingresen a la orina. Sin embargo, el deterioro de estos filtros puede hacer que la sangre (o los glóbulos rojos) y la albúmina ingresen a la orina. [6][7]

El Conjunto de Datos

El conjunto de datos utilizado para este artículo es el conjunto de datos ‘Enfermedad Renal Crónica’ disponible en Kaggle, proporcionado inicialmente por UCI en su repositorio de Aprendizaje Automático. Consiste en datos de 400 pacientes, incluyendo 24 características y 1 variable objetivo binaria (ERC ausente = 0, ERC presente = 1). Una descripción detallada de las características se puede encontrar aquí.

Preprocesamiento de Datos

El conjunto de datos de la ERC tenía muchos valores faltantes que necesitaban ser imputados antes de realizar un análisis adicional. Este gráfico muestra una representación visual de los datos faltantes, con las líneas amarillas indicando los valores faltantes en esa columna.

Representación visual de los datos faltantes (indicados por las líneas amarillas)

Los valores faltantes se imputaron de la siguiente manera:

  1. Para las características numéricas, los valores faltantes se llenaron utilizando la mediana. No se utilizó la media ya que la media es sensible a los valores atípicos, mientras que la mediana no lo es. Debido a la presencia de valores atípicos en estas columnas, la mediana es una mejor medida del valor central.
  2. Las características categóricas ‘rbc’ y ‘pc’ tenían un 38% y un 16.25% de datos faltantes respectivamente. Dado que se trata de una gran cantidad de datos faltantes, los valores faltantes se completaron como ‘desconocido’. Usar la moda aquí no sería la mejor decisión, ya que sería un poco arriesgado clasificar un grupo tan grande de observaciones en la misma categoría.
  3. Todas las demás características categóricas tenían menos del 1% de datos faltantes o iguales a eso. Por lo tanto, los valores faltantes se completaron utilizando sus respectivas modas.

Construyendo el modelo y verificando la interpretabilidad utilizando SHAP

Después de completar los valores faltantes, los datos se dividieron en conjunto de entrenamiento y prueba (70-30) y se ejecutó un modelo de clasificación de Random Forest simple. La precisión en la prueba fue del 100%, es decir, el modelo pudo clasificar correctamente a los pacientes que no había visto antes el 100% del tiempo. La matriz de confusión se muestra a continuación.

Matriz de confusión generada cuando se ejecutó el modelo en datos de prueba

Ahora, por supuesto, tenemos un gran modelo de clasificación. Pero, ¿qué pasa si estamos interesados en la interpretabilidad, es decir, cómo cada característica contribuye positiva o negativamente a la predicción? ¿Cuáles son las características más importantes que impulsan las predicciones? ¿Los resultados están de acuerdo con los hallazgos clínicos? Estas son preguntas que SHAP puede ayudarnos a responder.

SHAP es un enfoque matemático basado en la teoría de juegos que se puede utilizar para explicar la predicción de cualquier modelo de aprendizaje automático calculando la contribución de cada característica a la predicción. Puede ayudarnos a determinar las características más importantes que ayudan a impulsar la predicción y la dirección en la que influyen en la variable objetivo. [8] Se ajustó un explicador SHAP a los datos de prueba y se generó un gráfico de importancia de características globales como se muestra a continuación.

Gráfico de importancia de características globales generado utilizando SHAP

Las tres características principales que impulsan la predicción son los niveles de hemoglobina (‘hemo’), la gravedad específica de la orina (‘sg’) y si el paciente tenía glóbulos rojos en la orina (‘rbc_normal’). Dado que la importancia de la característica se calcula tomando la media del valor SHAP absoluto para esa característica en todas las muestras dadas, el gráfico solo proporciona información sobre el orden de importancia y no la dirección de influencia. Produzcamos un gráfico más informativo que encapsule ambos objetivos.

Gráfico de abejas generado utilizando SHAP

Este gráfico de abejas es una excelente manera de mostrar cómo las principales características en un conjunto de datos afectan la predicción del modelo. Los puntos rosados indican pacientes que se predijo que tienen CKD y los puntos azules indican pacientes que se predijo que no tienen CKD. Ahora que conocemos las principales características que impulsan la predicción, veamos si su dirección de influencia está de acuerdo con los hallazgos clínicos presentados anteriormente en este artículo.

  1. La presencia de diabetes mellitus (‘dm_yes’) e hipertensión (‘htn_yes’) se asocia con la presencia de CKD. Esto coincide con los hallazgos clínicos, aunque se esperaría verlos más arriba en términos de importancia global, ya que son factores de riesgo importantes asociados con la CKD.
  2. Tener niveles bajos de hemoglobina (‘hemo’), bajo volumen de células sanguíneas empaquetadas (‘pcv’: el porcentaje de volumen de glóbulos rojos en la sangre) y bajo recuento de glóbulos rojos (‘rc’) están asociados con la CKD. Esto también coincide con los hallazgos clínicos, ya que los pacientes que sufren de CKD no pueden producir niveles suficientes de glóbulos rojos.
  3. Tener una gravedad específica baja de la orina (‘sg’) está asociado con la CKD, lo cual se puede explicar clínicamente ya que los riñones pierden su capacidad para concentrar la orina.
  4. Tener niveles altos de albúmina en la orina (‘al’) y altos niveles de creatinina sérica (‘sc’) están asociados con la CKD, lo cual está de acuerdo con los hallazgos clínicos ya que los riñones pierden su capacidad para filtrar la sangre de manera efectiva.
  5. La presencia de glóbulos rojos en la orina o orina anormal (‘rbc_normal’; una característica categórica binaria donde el valor = 1 sugiere orina normal sin glóbulos rojos y el valor = 0 sugiere orina anormal que podría contener glóbulos rojos) está asociada con la CKD. Esto respalda los hallazgos clínicos, ya que la hematuria se encuentra con mayor frecuencia en pacientes que sufren de CKD.

En resumen, las principales características y sus direcciones de influencia en la predicción concuerdan con la literatura médica.

Conclusion

En este artículo, hay dos puntos principales a destacar:

  1. La literatura médica ha asociado el desarrollo y la progresión de la CKD con las mismas características principales que el modelo de ML utiliza para clasificar si un paciente se predice que tiene CKD.
  2. La dirección en la que estas características principales influyen en la variable objetivo respalda los hallazgos clínicos, lo que sugiere que el modelo no solo es 100% preciso en la predicción de la CKD, sino también médicamente significativo y los resultados son completamente interpretables.

Una posible limitación de este estudio es el tamaño de la muestra pequeño. Una vez que haya más datos disponibles, el modelo debería ser probado en un grupo más grande de pacientes para verificar si sigue funcionando con alta precisión. También sería interesante ver si el orden de importancia de las características cambia para un grupo más grande de pacientes.

En el campo médico, el modelo más preciso no siempre es el más significativo. En este estudio, se utilizó SHAP para verificar si nuestro modelo coincide con la literatura médica. La ventaja del modelo resultante es que no solo es altamente preciso, sino también fácilmente interpretable y respaldado por hallazgos clínicos. Este modelo puede ser de gran utilidad en la telemedicina, donde se puede utilizar para identificar pacientes que tienen un mayor riesgo de desarrollar CKD. Los estudios futuros pueden involucrar la observación individual y ver qué características del modelo están impulsando la predicción a nivel individual.

El código de este proyecto se puede encontrar aquí. Todas las imágenes en el cuerpo de este artículo han sido generadas por mí a través de Google Colab.

Referencias

Licencia para el conjunto de datos original: L. Rubini, P. Soundarapandian y P. Eswaran, Enfermedad Renal Crónica (2015), Repositorio de Aprendizaje Automático de UCI (CC BY 4.0)

Conjunto de datos ‘Enfermedad Renal Crónica’ en Kaggle: https://www.kaggle.com/datasets/mansoordaku/ckdisease

Documentación original de SHAP: https://shap.readthedocs.io/en/latest/api_examples.html#plots

[1] Conceptos básicos de la enfermedad renal crónica (2022), Centros para el Control y la Prevención de Enfermedades

[2] C.P. Kovesdy, Epidemiología de la enfermedad renal crónica: una actualización 2022 (2022), Suplementos de Kidney International

[3] H. Shaikh, M.F. Hashmi y N.R. Aeddula, Anemia de la enfermedad renal crónica (2023), Biblioteca Nacional de Medicina

[4] Creatinina sérica (sangre) (2023), Fundación Nacional del Riñón

[5] J.A. Simerville, W.C. Maxted y J.J. Pahira, Análisis de orina: una revisión completa (2005), Médico de Familia Estadounidense

[6] P.F. Orlandi, et al., Hematuria como factor de riesgo para la progresión de la enfermedad renal crónica y la muerte: hallazgos del estudio del Cohorte de Insuficiencia Renal Crónica (CRIC) (2018), BMC Nephrology

[7] Albuminuria (2016), Instituto Nacional de Diabetes y Enfermedades Digestivas y Renales

[8] R. Bagheri, Introducción a los valores SHAP y su aplicación en el aprendizaje automático (2022), Towards Data Science