forecast-arena 🥊¶
Modelos de series de tiempo que se pelean entre ellos. El de menor error gana el derecho a pronosticar.
Inspirado en Hyndman & Athanasopoulos, Forecasting: Principles and Practice (fpp3).
pip install forecast-arena
La idea en una imagen¶
No le creas a ningún modelo por default. En cada pronóstico, diez luchadores — desde el humilde naive hasta SARIMA, ETS, Theta y un híbrido de machine learning — compiten en un backtesting honesto. El leaderboard decide, el campeón pronostica, y cada afirmación viene con su evidencia.
from forecast_arena import Arena
result = Arena().compete(y, test_size=12, h=12)
result.leaderboard # MAE, RMSE, MAPE, sMAPE, MASE por modelo
result.champion # p. ej. 'ETS'
result.forecast_intervals # pronóstico + bandas 80/95%
result.residual_diagnostics # ¿el campeón dejó información en la mesa?
result.interval_report # ¿las bandas del 95% cubren de verdad el 95%?
result.changepoints # quiebres estructurales detectados (PELT)
result.plot() # todo lo anterior, dibujado
Todo es automático (y todo se puede fijar a mano)¶
- Periodicidad: por la frecuencia del índice o por periodograma+ACF.
- Transformación: detección de multiplicatividad, λ de Box-Cox por el método de Guerrero, y siempre te dice qué hizo y por qué.
- Quiebres estructurales: PELT encuentra dónde tu serie "cambió de vida" y puedes reportarlo, recortar la historia vieja o modelarlo como variable de intervención.
- Exógenas: conocidas, pronosticadas en cascada, o mixtas — con la incertidumbre propagada a las bandas.
- Escala: cientos de series con
compete_many, jerarquías que cuadran conforecast_hierarchy, paralelización conn_jobs.
Filosofía¶
- Los benchmarks naive siempre están en el ring: si tu modelo sofisticado no los vence (MASE < 1), no sirve.
- El backtesting nunca hace trampa: sin fuga de información, ni siquiera en la cascada de exógenas.
- Las bandas de predicción son promesas auditables: cobertura empírica y Winkler score en cada corrida.
- Cada decisión automática se reporta con su porqué.
Empieza por la Guía rápida o profundiza en la Metodología.