Datos, modelos, parámetros de entrenamiento y validación del 4.º padecimiento · EpiForecast-MX
El Dengue se modela distinto a la cohorte neurológica: en conteos absolutos (no en tasa), sobre escala log1p, con un regresor climático (El Niño / ONI) y un motor nuevo count-correcto (NB-GLM). Aquí se documenta cada decisión, con sus parámetros reales y sus referencias.
De qué serie partimos y por qué el Dengue se trata como una cohorte aparte
Dengue confirmado reconstruido de los boletines del SINAVE (Cuadro 7.2, esquema OMS 2009 con tres severidades A97.0 / A97.1 / A97.2) agregadas a un único «Dengue». Serie semanal nacional y por entidad 2018-W27 a 2026 (≈391 semanas), alineada a la semana ISO.
A diferencia de neuro (tasa por 100k), el Dengue se modela en conteos: se activa log1p (estabiliza la varianza de los brotes), se desactiva la normalización por tasa, se acota con un clamp estacional a la envolvente histórica y se invierte con expm1 al predecir. Sin log, la tendencia multiplicativa colapsa a ~0 al extrapolar.
99 series (Nacional + 32 entidades × 3 sexos) más 4 regiones agregadas. Las semanas sin boletín se rellenan por interpolación (no con ceros), salvo un cero real observado, que se conserva en cero («si es 0, es 0»).
Tres compiten en producción; dos quedan fuera por una razón estructural
Modelo aditivo de tendencia + estacionalidad. Para Dengue: estacionalidad multiplicativa sobre log1p, estacionalidad anual de Fourier y el regresor ONI. En producción
Red recurrente autorregresiva probabilística (GluonTS + PyTorch). Aprende de los lags y la estacionalidad; bloque short_series ajustado a la historia más corta del Dengue. En producción
GLM Negative-Binomial + Fourier anual + tendencia + lags + ONI. Count-correcto y el mejor del backtest de la epidemia 2024 (SMAPE 52). Pero su pronóstico es recursivo: cada semana pronosticada alimenta la siguiente vía el rezago, y en muchas series se desboca más allá de ~10 semanas hasta el tope del modelo. Suspendido en esta ronda
Prophet + XGBoost (Ensemble) y Prophet + ETS + LightGBM + Ridge (Stacking). Fuera de producción: los árboles no extrapolan la dinámica epidémica a 52 semanas (divergen ~33x / ~99x); el clamp estacional los acota, pero no se eligen. Fuera
Valores reales de configuración por motor (config/models/*.yaml y el código del modelo)
| Parámetro | Valor | Razón |
|---|---|---|
| seasonality_mode | multiplicative | La amplitud del brote crece con el nivel |
| changepoint_prior_scale | 0.05 (fijo) | Barrido validado: ratio yhat/real nacional 0.98; valores altos persiguen la caída reciente |
| seasonality_prior_scale | {1.0, 5.0, 10.0} | Grid de 3 (único HP que se busca) |
| add_seasonality | period=365.25, fourier_order=10 (regional 5) | Estacionalidad anual exacta |
| transformación | log1p, sin tasa | Cohorte de conteos-log |
| regresor | ONI, lag 16 sem | Señal El Niño (ver abajo) |
| holidays / cv_weights | sin COVID / uniformes | El COVID no aplica al Dengue; CV sin sesgo reciente |
| Parámetro | Valor | Razón |
|---|---|---|
| context_length | 104 (2 años) | Captura 2 ciclos anuales completos |
| prediction_length | 52 | Horizonte de 1 año |
| max_lag | 53 | Conserva el lag anual (52) sin exceder la historia disponible |
| num_layers / num_cells | 2 / 80 | Capacidad recurrente |
| dropout_rate | 0.15 | Regularización (1 sola serie) |
| learning_rate / epochs | 5e-4 / 300 + early stopping 15 | Convergencia estable |
| cross-validation | 2 folds × 26 sem | CV honesta sin padding de ceros |
| gap_fill / device | interpolate / CUDA > CPU (MPS off) | Huecos interpolados; muestreo StudentT no soportado en MPS |
| Componente | Valor | Razón |
|---|---|---|
| familia | NegativeBinomial(alpha=1.0) | Sobre-dispersión típica de conteos epidémicos |
| matriz de diseño | 1 + Fourier(k=4) + tendencia + lag1 + lag52 [+ ONI] | Estacionalidad paramétrica + memoria + clima |
| fourier_k | 4 armónicos | Ciclo anual sobre la semana ISO |
| tendencia | lineal (semanas/52) | freeze_trend (lo usaba la proyección multi-año, retirada) |
| series degeneradas | fallback constante | Entidades sin transmisión (GLM infeasible) |
| implementación | statsmodels GLM | Determinista, reproducible |
Ensemble (XGBoost: n_estimators 200, max_depth 3, lr 0.03) y Stacking (LightGBM: n_estimators 300, max_depth 4, lr 0.05) se entrenan y evalúan pero quedan fuera de producción.
El ciclo inter-anual del dengue sigue a ENSO, una señal que no vive en los conteos recientes
El índice ONI (Oceanic Niño Index, NOAA CPC), alineado a semana ISO y rezagado 16 semanas (el clima precede al dengue ~3–6 meses). Es cohort-only: solo lo usa el Dengue; neuro nunca lo toca.
Para el horizonte de pronóstico se usa ONI observado y, donde falta, persistencia amortiguada hacia neutral (decae a 0 con e-folding ~40 sem), o un pronóstico ENSO externo (IRI/CPC) si se provee.
En el backtest leave-one-epidemic-out, agregar ONI a Prophet baja el SMAPE nacional de 102 a 76, y corrige el pico 2024 de ratio 1.61 a 0.87.
Cómo se decide qué motor usa cada serie, y la nota honesta de validación
Por serie, entre los motores elegibles de la ronda (Prophet y DeepAR), se compara el pronóstico de cada uno contra la realidad del boletín (SMAPE, con MAE para las series casi en cero). La distribución vigente por motor se publica en la página de Dengue, derivada de la asignación.
El estudio que corona al NB-GLM es un backtest fuera de muestra (leave-one-epidemic-out): se entrena solo con datos previos al corte y se puntúa el año siguiente (epidemia 2024). SMAPE 52 vs Prophet+ENSO 76 vs Prophet 102.
En esta ronda la selección es fuera de muestra: modelos entrenados hasta la semana 27 de 2026, comparados contra las semanas 28 a 37, y reentrenados después hasta la semana 37. Esa comparación sirve para elegir motor; no es una medida publicada del desempeño. Detalle en la Auditoría.
Qué tan lejos se pronostica con precisión, y cómo se modelan las regiones
El pronóstico es a 52 semanas. La proyección a 5 años que generaba NB-GLM con
freeze_trend se retiró junto con ese motor: congelar la tendencia no elimina su realimentación recursiva
y la proyección no tenía validación propia. El ciclo de ~4–5 años (2019, 2024) no es aprendible con solo
dos ciclos.
Las 4 regiones usan DeepAR nativo, no la suma de estados. Un backtest OOS de la epidemia 2024 mostró que agregar estados compone los sobre-tiros y explota (pico 34–157x); el nativo es contenido y fiel en magnitud (MAE 460 vs 3.7k–10k de la agregación).
Fuentes verificadas que sustentan los métodos y la señal climática de esta metodología. Bibliografía completa en Referencias.
Multiyear climate variability and dengue—El Niño Southern Oscillation, weather, and dengue incidence in Puerto Rico, Mexico, and Thailand
PLOS Medicine, 6(11), e1000168, 2009
doi.org/10.1371/journal.pmed.1000168Forecasting at scale (Prophet)
The American Statistician, 72(1), 37–45, 2018
doi.org/10.1080/00031305.2017.1380080DeepAR: Probabilistic forecasting with autoregressive recurrent networks
International Journal of Forecasting, 36(3), 1181–1191, 2020
doi.org/10.1016/j.ijforecast.2019.07.001Negative Binomial Regression (2.ª ed.) — base del motor NB-GLM
Cambridge University Press, 2011
doi.org/10.1017/CBO9780511973420XGBoost: A scalable tree boosting system (Ensemble)
KDD '16: 22nd ACM SIGKDD, 785–794, 2016
doi.org/10.1145/2939672.2939785LightGBM: A highly efficient gradient boosting decision tree (Stacking)
Advances in Neural Information Processing Systems (NeurIPS) 30, 2017
proceedings.neurips.ccAnother look at measures of forecast accuracy (MASE)
International Journal of Forecasting, 22(4), 679–688, 2006
doi.org/10.1016/j.ijforecast.2006.03.001On the use of cross-validation for time series predictor evaluation
Information Sciences, 191, 192–213, 2012
doi.org/10.1016/j.ins.2011.12.028Boletín Epidemiológico — Sistema Nacional de Vigilancia Epidemiológica
Gobierno de México, 2012–2026
gob.mx/salud