StatsForecast ofrece una colección de modelos de pronóstico de series temporales univariantes ampliamente utilizados, incluido el modelado automático ARIMA
, ETS
, CES
y Theta
optimizado para un alto rendimiento utilizando numba
. También incluye una gran batería de modelos de benchmarking.
Puedes instalar StatsForecast
con:
pip install statsforecast
o
conda install - c conda - forge statsforecast
Visite nuestra Guía de instalación para obtener más instrucciones.
Ejemplo mínimo
from statsforecast import StatsForecast
from statsforecast . models import AutoARIMA
from statsforecast . utils import AirPassengersDF
df = AirPassengersDF
sf = StatsForecast (
models = [ AutoARIMA ( season_length = 12 )],
freq = 'ME' ,
)
sf . fit ( df )
sf . predict ( h = 12 , level = [ 95 ])
Comience con esta guía rápida.
Siga este tutorial completo para conocer las mejores prácticas.
Las alternativas actuales de Python para modelos estadísticos son lentas, inexactas y no escalan bien. Por eso creamos una biblioteca que se puede utilizar para realizar pronósticos en entornos de producción o como puntos de referencia. StatsForecast
incluye una amplia batería de modelos que pueden adaptarse de manera eficiente a millones de series temporales.
AutoARIMA
, AutoETS
, AutoCES
, MSTL
y Theta
en Python..fit
y .predict
. exogenous variables
e prediction intervals
para ARIMA.pmdarima
.R
Prophet
.statsmodels
.numba
.¿Te falta algo? Por favor abra un problema o escríbanos
Tutorial de principio a fin: capacitación, evaluación y selección de modelos para múltiples series temporales
? Detección de anomalías: detecte anomalías en series temporales utilizando intervalos de predicción en la muestra.
?? Validación cruzada: evaluación del desempeño del modelo robusto.
❄️ Múltiples estacionales: cómo pronosticar datos con múltiples estacionales usando un MSTL.
? Predecir picos de demanda: previsión de carga eléctrica para detectar picos diarios y reducir las facturas eléctricas.
? Demanda intermitente: series de pronósticos con muy pocas observaciones distintas de cero.
?️ Regresores exógenos: como el clima o los precios
Las herramientas de previsión automática buscan los mejores parámetros y seleccionan el mejor modelo posible para un grupo de series temporales. Estas herramientas son útiles para grandes colecciones de series temporales univariadas.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoETS | ✅ | ✅ | ✅ | ✅ | |
AutoCES | ✅ | ✅ | ✅ | ✅ | |
AutoTheta | ✅ | ✅ | ✅ | ✅ | |
AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoTBATS | ✅ | ✅ | ✅ | ✅ |
Estos modelos explotan las autocorrelaciones existentes en las series temporales.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
Autoregresivo | ✅ | ✅ | ✅ | ✅ | ✅ |
Ajuste dos líneas theta a una serie temporal desestacionalizada, utilizando diferentes técnicas para obtener y combinar las dos líneas theta para producir los pronósticos finales.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
theta | ✅ | ✅ | ✅ | ✅ | |
Theta optimizado | ✅ | ✅ | ✅ | ✅ | |
Theta dinámica | ✅ | ✅ | ✅ | ✅ | |
DinámicoOptimizadoTheta | ✅ | ✅ | ✅ | ✅ |
Adecuado para señales con más de una estacionalidad clara. Útil para datos de baja frecuencia como electricidad y registros.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
MSTL | ✅ | ✅ | ✅ | ✅ | Si el pronosticador de tendencias apoya |
MFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
TBATS | ✅ | ✅ | ✅ | ✅ |
Adecuado para modelar series temporales que exhiben una volatilidad no constante en el tiempo. El modelo ARCH es un caso particular de GARCH.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
GARCIA | ✅ | ✅ | ✅ | ✅ | |
ARCO | ✅ | ✅ | ✅ | ✅ |
Modelos clásicos para establecer la línea de base.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
Promedio histórico | ✅ | ✅ | ✅ | ✅ | |
Ingenuo | ✅ | ✅ | ✅ | ✅ | |
Paseo aleatorio con deriva | ✅ | ✅ | ✅ | ✅ | |
estacionalingenuo | ✅ | ✅ | ✅ | ✅ | |
VentanaPromedio | ✅ | ||||
Ventana estacionalPromedio | ✅ |
Utiliza un promedio ponderado de todas las observaciones pasadas donde los pesos disminuyen exponencialmente en el pasado. Adecuado para datos con tendencia clara y/o estacionalidad. Utilice la familia SimpleExponential
para datos sin tendencia o estacionalidad clara.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
Suavizado exponencial simple | ✅ | ||||
SimpleExponencialSuavizadoOptimizado | ✅ | ||||
Suavizado estacionalexponencial | ✅ | ||||
EstacionalExponencialSuavizadoOptimizado | ✅ | ||||
Bosquecillo | ✅ | ✅ | ✅ | ✅ | |
HoltWinters | ✅ | ✅ | ✅ | ✅ |
Adecuado para series con muy pocas observaciones distintas de cero.
Modelo | Pronóstico de puntos | Pronóstico probabilístico | Valores ajustados en muestra | Valores ajustados probabilísticos | Características exógenas |
---|---|---|---|---|---|
ADIDA | ✅ | ✅ | ✅ | ||
CrostonClásico | ✅ | ✅ | ✅ | ||
CrostonOptimizado | ✅ | ✅ | ✅ | ||
CrostonSBA | ✅ | ✅ | ✅ | ||
IMAPA | ✅ | ✅ | ✅ | ||
TSB | ✅ | ✅ | ✅ |
Consulte CONTRIBUCIÓN.md.
@misc { garza2022statsforecast ,
author = { Azul Garza, Max Mergenthaler Canseco, Cristian Challú, Kin G. Olivares } ,
title = { {StatsForecast}: Lightning fast forecasting with statistical and econometric models } ,
year = { 2022 } ,
howpublished = { {PyCon} Salt Lake City, Utah, US 2022 } ,
url = { https://github.com/Nixtla/statsforecast }
}
Gracias a estas maravillosas personas (tecla emoji):
azul ? | jose morales ? | Rayo Sugato | Jeff Tackes ? | darinkista ? | Alec Helyar | David Hirschfeld |
mergenthaler | Familiares | Yasslight90 ? | asinig ? | Philip Gillissen | Sebastián Hagn ? | Han Wang |
Ben Jeffrey ? | Beliavski | Mariana Menchero García | Nikhil Gupta ? | J.D. ? | josh attenberg | JeroenPeterBos |
Jeroen Van Der Donckt | Roymprog | Nelson Cárdenas Bolaño | Kyle Schmaus | Akmal Soliev | nick a | Kevin Kho |
Yiben Huang | Andrés Gross | taniishkaaa | Manuel Calzolari |
Este proyecto sigue la especificación de todos los contribuyentes. ¡Se aceptan aportes de cualquier tipo!