/ Proyectos / Salud / Predicción de esquema de vacunación incompleto
Predicción de esquema de vacunación incompleto: selección estadística de variables
Cómo identificar con anticipación qué casos tienen mayor riesgo de quedarse con el esquema de vacunación infantil incompleto, usando pruebas de hipótesis para elegir variables en vez de la importancia de un solo modelo.
El objetivo era identificar con anticipación qué casos tenían mayor riesgo de quedarse con el esquema de vacunación infantil incompleto (dosis de IPV, Pentavalente, Neumococo, Rotavirus e Influenza), para poder priorizar el seguimiento donde más se necesita. No es un proyecto sobre seguridad o eficacia de vacunas, es un problema operativo de salud pública: dado un registro administrativo, ¿qué variables predicen mejor que un esquema se quede incompleto?
El reto real fue de rigor antes que de modelado. Con docenas de variables demográficas y administrativas disponibles, elegir cuáles usar por intuición, o por la importancia que le diera un solo modelo, hubiera sido una decisión débil. La respuesta fue tratarlo como lo que era: un problema de inferencia estadística antes de ser un problema de machine learning.
Mapa del casoContenido
- Diagrama de la solución. Los bloques del pipeline, del registro de vacunación al riesgo estimado
- Construcción de la solución. Por qué la selección de variables fue un problema estadístico antes que de modelado
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno
- Proceso de iteración. Qué reveló revisar la estabilidad del target antes de modelar
- Descargables. Notebook, diagrama y repositorio del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
La revisión de estabilidad temporal del target y las pruebas estadísticas ocurren antes que cualquier modelo, no como un paso de limpieza rápida sino como el filtro que decide qué datos y qué variables merecen entrar al pipeline.
Cómo se construyóConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Objetivo operativo | Priorizar seguimiento de casos con mayor riesgo de esquema incompleto, no evaluar vacunas en sí |
| Variables disponibles | Docenas de campos demográficos y administrativos, numéricos y categóricos, sin una jerarquía de relevancia obvia |
| Balance de clases | La proporción de esquemas completos e incompletos no está garantizada a 50/50 |
| Naturaleza temporal | El registro cubre varios periodos, con riesgo de que el patrón del target cambie con el tiempo |
| Opción | Por qué se descartó |
|---|---|
| Elegir variables por la importancia de un solo modelo entrenado con todas las columnas | La importancia de un modelo puede estar sesgada por su propia arquitectura, y no controla el riesgo de significancia por azar al evaluar muchas variables a la vez |
| Modelar directamente sobre todo el histórico sin revisar estabilidad temporal | Si la proporción de la clase objetivo cambia con el tiempo, el modelo puede aprender un patrón que ya no aplica al periodo más reciente |
| Balancear las clases con SMOTE estándar | SMOTE interpola entre puntos numéricos, lo que no tiene sentido directo para variables categóricas mezcladas con numéricas |
| Selección de variables con pruebas de hipótesis y corrección FDR, revisión de estabilidad temporal del target, y balanceo con SMOTENC para datos mixtos | Cada paso está diseñado para el tipo de dato y el riesgo estadístico real del problema, no para la conveniencia de un solo algoritmo |
Pasos
Revisar la estabilidad temporal del target antes de modelar
Agente: propuso pasar directamente a la separación de variables predictoras, tratando el histórico completo como una sola muestra homogénea.
Criterio aplicado: calcular la proporción de esquemas completos por periodo y su variación mes a mes, para confirmar que el objetivo no tuviera un cambio de comportamiento (drift) que invalidara tratar todo el histórico como una sola distribución.
Seleccionar variables con pruebas estadísticas, no con importancia de modelo
Agente: sugería entrenar un modelo con todas las variables disponibles y usar su importancia para quedarse con las principales.
Criterio aplicado: aplicar Mann-Whitney U con tamaño de efecto para variables numéricas y Chi-cuadrada con Cramér's V para categóricas, con corrección por comparaciones múltiples (FDR), para elegir las 10 variables numéricas y 10 categóricas con mayor relación real con el objetivo, no solo las que un modelo particular prefiriera.
Balancear con una técnica adecuada para datos mixtos
Agente: proponía aplicar SMOTE estándar sobre todas las variables tras codificarlas como numéricas.
Criterio aplicado: usar SMOTENC, diseñado específicamente para datasets con variables numéricas y categóricas mezcladas, para que los ejemplos sintéticos generados fueran coherentes con la naturaleza real de cada variable.
Comparar modelos y afinar con búsqueda bayesiana
Agente: sugería ajustar hiperparámetros a mano después de elegir el mejor modelo por accuracy simple.
Criterio aplicado: comparar Regresión Logística, Random Forest y XGBoost con matriz de confusión y curva ROC/AUC, y afinar el modelo campeón con una búsqueda bayesiana de hiperparámetros (Optuna) usando peso balanceado por clase, en vez de accuracy simple, dado el desbalance del problema.
Proceso de iteración
Ajuste documentado, no forzado
La revisión de estabilidad temporal del target no fue un trámite: reveló variación mes a mes en la proporción de esquemas completos, consistente con cambios estacionales y administrativos esperables en un registro de este tipo. Eso no invalidó el proyecto, pero sí obligó a interpretar el modelo final como una fotografía del patrón general, no como una regla fija en el tiempo. De la misma forma, las pruebas estadísticas con corrección FDR dejaron fuera varias variables que un modelo de importancia hubiera considerado relevantes por simple correlación con otras variables ya seleccionadas, una diferencia que solo se nota si se compara el método estadístico contra la alternativa más simple.
CierreLecciones importantes
Seleccionar variables con pruebas de hipótesis y corrección por comparaciones múltiples toma más tiempo que confiar en la importancia de un modelo entrenado con todo el dataset. Ese tiempo extra se paga solo: evita que el pipeline aprenda relaciones espurias que un modelo particular puede favorecer por su propia arquitectura, y deja una justificación estadística clara de por qué cada variable entró al modelo final, algo que cualquier revisión posterior va a pedir.
La segunda lección es de disciplina temporal. Un dataset administrativo no es una fotografía fija; revisar si el objetivo cambia con el tiempo antes de modelar evita construir un sistema sobre una base que ya se movió, y permite comunicar con honestidad qué tan generalizable es el resultado.
Si quieres ver un enfoque publicado con una idea similar, predicción de inmunización infantil incompleta con machine learning sobre datos poblacionales, este paper es una buena referencia del nivel de la contribución: Prediction of incomplete immunization among under-five children in East Africa from recent demographic and health surveys: a machine learning approach.
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato