Proyecto de Analítica Avanzada · México 2020–2024

Identificación dePerfiles de RiesgoCOVID-19

Analisis de 30M+ registros de la Secretaria de Salud de Mexico para identificar perfiles clinicos de riesgo mediante K-means y Fuzzy C-Means, con metricas comparativas, validacion interna y visualizaciones interactivas.

30M+registros analizados
1.5Mmuestra estratificada
2algoritmos comparados
4clusters identificados
Scroll

La pandemia generó datos masivos.
La pregunta es qué revelan.

México acumuló más de 30 millones de registros epidemiológicos entre 2020 y 2024. Este proyecto los analiza para identificar perfiles clínicos de riesgo mediante algoritmos de clustering no supervisado.

Triaje incierto

Sin perfiles claros de riesgo, la priorización clínica se basa en criterios aislados, no en patrones multivariados reales.

30M+ registros sin explotar

Datos masivos de la Secretaría de Salud con potencial analítico enorme, pero sin segmentación sistemática.

Complejidad multivariada

Comorbilidades, edad, sexo y variables clínicas interactúan de formas no lineales que requieren clustering no supervisado.

Linea temporal del registro

2020

Inicio de la pandemia en México

Primeros registros masivos de casos y defunciones, sobrecarga hospitalaria.

2021

Picos de mortalidad y variantes

Segunda y tercera ola, saturación de UCIs, datos epidemiológicos crecientes.

2022

Estabilización progresiva

Vacunación masiva, descenso de casos graves, normalización gradual.

2023–24

Registro y análisis retrospectivo

30M+ registros acumulados disponibles para análisis de perfiles de riesgo.

30M+Registros epidemiologicos
17Variables clinicas
2020–2024Periodo de estudio
DGE / SSAFuente oficial

Pipeline reproducible,
de datos crudos a perfiles clínicos.

Seis etapas estructuradas en Jupyter Notebooks, desde la ingesta de datos hasta la comparación de algoritmos. Cada paso es trazable y reproducible.

01Paso 01

Carga de datos

Descarga automatizada desde la DGE y carga de 30M+ registros en DataFrames optimizados.

00_carga_datos.ipynb
02Paso 02

Exploracion

Analisis temporal, distribuciones demograficas, completitud de registros, valores faltantes y outliers.

01_exploracion_datos.ipynb
03Paso 03

Preprocesamiento

Muestreo estratificado (5%), one-hot encoding, estandarizacion, PCA para visualizacion, analisis VIF.

02_preprocesamiento_limpio.ipynb
04Paso 04

K-Means Clustering

Metodo del codo, analisis de silueta, seleccion de k=9 clusters, perfilamiento e interpretacion clinica.

03_kmeans_analisis.ipynb
05Paso 05

Fuzzy C-Means

FPC para seleccion de c=2, membresias parciales, analisis de ambiguedad, comparacion con K-Means.

04_fuzzy_cmeans_analisis.ipynb
06Paso 06

Comparacion y validacion

Matriz de confusion, Adjusted Rand Index, concordancia, analisis de puntos discordantes.

05_comparacion_resultados.ipynb

17 Variables de entrada

Demograficas
EDADSEXO
Clinicas
TIPO_PACIENTEINTUBADOUCINEUMONIA
Comorbilidades
DIABETESEPOCASMAINMUSUPRHIPERTENSIONOBESIDADCARDIOVASCULARRENAL CRONICATABAQUISMO
Resultado
FALLECIDO

Estrategia de muestreo

Poblacion original30M+
Muestra utilizada58,497
Tasa de muestreo~5%
EstratificacionAno x Mes x Edad x Fallecido
PCA Varianza Explicada
PCA — Varianza explicada acumulada · Solo para visualización, no para clustering

Flujo del pipeline

Diagrama interactivo (zoom/pan). Para el ETL extendido, ver la sección ETL.React Flow

Nueve perfiles clínicos revelan
la estructura oculta del riesgo.

K-Means identificó 9 clusters con perfiles diferenciados de riesgo, desde jóvenes sin comorbilidades hasta adultos mayores con 4+ condiciones crónicas.

72.6%Puntos discordantes

Los algoritmos clasifican a la mayoria de pacientes en grupos diferentes — capturan estructuras complementarias.

0.107Adjusted Rand Index

Concordancia baja: K-Means y Fuzzy C-Means revelan patrones distintos del mismo dataset.

4.05Max. comorbilidades promedio

Cluster K7 presenta la mayor carga de comorbilidades: diabetes, hipertension, obesidad, cardiovascular.

100%Intubacion Cluster K3

El cluster mas critico: todos los pacientes intubados, edad promedio 66.7 anos.

Perfiles K-Means — Clusters principales

Clustern%Edad μHosp.Intub.Comor. μPerfilRiesgo
K111,38719.5%75.897.8%0%0.70Adultos mayores fragiles, hospitalizados con pocas comorbilidades registradas
ALTO
K74,5917.8%68.696.6%5.8%4.05Mayor carga de comorbilidades del estudio: 4+ condiciones promedio
CRITICO
K36,05010.3%66.7100%100%1.81100% intubados — casos criticos en UCI, alta severidad
CRITICO
K43,0445.2%33.4100%100%0.52Jovenes intubados sin comorbilidades — severidad inesperada
ALTO
K610,04417.2%37.381.6%0%0.47Jovenes hospitalizados con minimas comorbilidades
MODERADO
K54,4017.5%54.947.7%1.2%3.33Pacientes con multiples comorbilidades, hospitalizacion parcial
ALTO

Comparacion de metricas

Coeficiente de Silueta0.19240.1364K-Means
Davies-Bouldin Index1.73892.8749K-Means
Calinski-Harabasz Index6,7426,628K-Means
FPCN/A0.500Fuzzy

Comparacion PCA 2D

Comparacion PCA K-Means vs Fuzzy C-Means
PCA 2D — K-Means (k=9) vs Fuzzy C-Means (c=2)

Hallazgo clave: Ambigüedad total en Fuzzy C-Means

Los 58,497 pacientes obtuvieron membresía exacta de 0.50 en ambos clusters fuzzy — ningún punto fue clasificado con certeza. Esto indica que con c=2, el algoritmo no pudo discriminar subgrupos claros, sugiriendo que la estructura natural del dataset requiere más clusters o un preprocesamiento diferente.

Mostrando 6 de 29 visualizaciones

Lo que los datos revelan
y lo que queda por descubrir.

01

K-Means produce clusters clinicamente interpretables

9 clusters con perfiles diferenciados: desde jovenes sin comorbilidades (K6) hasta adultos mayores con 4+ condiciones cronicas (K7). Cada cluster tiene implicaciones directas para triaje y asignacion de recursos.

02

Fuzzy C-Means revela ambigüedad inherente

Con c=2, todos los pacientes obtuvieron membresía de 0.50 — ambigüedad total. Esto no invalida el método, sino que evidencia que la frontera entre perfiles de riesgo no es binaria.

03

Los algoritmos capturan estructuras complementarias

72.6% de discordancia y ARI de 0.107 confirman que K-Means y Fuzzy C-Means no son redundantes: ofrecen perspectivas complementarias del mismo fenómeno epidemiológico.

04

El riesgo no depende de una sola variable

La combinación edad + comorbilidades + tipo de atención define perfiles de riesgo más informativos que cualquier variable aislada. El análisis multivariado supera los enfoques univariados.

Limitación crítica: variable de resultado

100% de mortalidad en todos los clusters indica un problema de calidad en la variable FALLECIDO, no corregido en el pipeline. Lección: validar variables de resultado tempranamente.

Trabajo futuro

  • Probar HDBSCAN y Gaussian Mixture Models para comparación más completa
  • Incluir datos de vacunación y variantes genómicas si disponibles
  • Reducir a 4–5 clusters K-Means para comunicación clínica más directa
  • Implementar validación externa con datos clínicos reales
  • Desarrollar herramienta interactiva de clasificación de riesgo en tiempo real

Stack tecnologico

PythonPandas, NumPy, Scikit-learn
Fuzzy C-Meansscikit-fuzzy
VisualizaciónMatplotlib, Seaborn
NotebooksJupyter / IPython
PortfolioNext.js, TypeScript, Tailwind
DocumentoLaTeX
Diego VillagranData Science @ ESCOM-IPN