StatsForecast propose une collection de modèles de prévision de séries chronologiques univariées largement utilisés, notamment la modélisation automatique ARIMA
, ETS
, CES
et Theta
optimisée pour des performances élevées à l'aide de numba
. Il comprend également une large batterie de modèles d’analyse comparative.
Vous pouvez installer StatsForecast
avec :
pip install statsforecast
ou
conda install - c conda - forge statsforecast
Consultez notre guide d'installation pour plus d'instructions.
Exemple minimal
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 ])
Commencez avec ce guide rapide.
Suivez cette procédure pas à pas de bout en bout pour connaître les meilleures pratiques.
Les alternatives Python actuelles pour les modèles statistiques sont lentes, inexactes et ne s'adaptent pas bien. Nous avons donc créé une bibliothèque qui peut être utilisée pour effectuer des prévisions dans des environnements de production ou comme référence. StatsForecast
comprend une vaste batterie de modèles capables de s'adapter efficacement à des millions de séries chronologiques.
AutoARIMA
, AutoETS
, AutoCES
, MSTL
et Theta
en Python..fit
et .predict
. exogenous variables
et prediction intervals
pour ARIMA.pmdarima
.R
.Prophet
.statsmodels
.numba
.Il manque quelque chose ? Veuillez ouvrir un problème ou nous écrire
Procédure pas à pas de bout en bout : formation, évaluation et sélection de modèles pour plusieurs séries temporelles
? Détection des anomalies : détectez les anomalies pour les séries temporelles à l'aide d'intervalles de prédiction dans l'échantillon.
?? Validation croisée : évaluation robuste des performances du modèle.
❄️ Saisonnalités multiples : comment prévoir des données avec plusieurs saisonnalités à l'aide d'un MSTL.
? Prédire les pics de demande : prévision de la charge électrique pour détecter les pics quotidiens et réduire les factures d'électricité.
? Demande intermittente : série de prévisions avec très peu d'observations non nulles.
?️ Régresseurs exogènes : comme la météo ou les prix
Les outils de prévision automatiques recherchent les meilleurs paramètres et sélectionnent le meilleur modèle possible pour un groupe de séries chronologiques. Ces outils sont utiles pour les grandes collections de séries chronologiques univariées.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoETS | ✅ | ✅ | ✅ | ✅ | |
AutoCES | ✅ | ✅ | ✅ | ✅ | |
AutoThêta | ✅ | ✅ | ✅ | ✅ | |
AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoTBATS | ✅ | ✅ | ✅ | ✅ |
Ces modèles exploitent les autocorrélations existantes dans les séries chronologiques.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
Autorégressif | ✅ | ✅ | ✅ | ✅ | ✅ |
Ajustez deux lignes thêta à une série chronologique désaisonnalisée, en utilisant différentes techniques pour obtenir et combiner les deux lignes thêta afin de produire les prévisions finales.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
Thêta | ✅ | ✅ | ✅ | ✅ | |
Thêta optimisé | ✅ | ✅ | ✅ | ✅ | |
Thêta dynamique | ✅ | ✅ | ✅ | ✅ | |
DynamiqueOptimiséThêta | ✅ | ✅ | ✅ | ✅ |
Convient aux signaux avec plus d’une saisonnalité claire. Utile pour les données basse fréquence comme l'électricité et les journaux.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
MSTL | ✅ | ✅ | ✅ | ✅ | Si le prévisionniste de tendances prend en charge |
MFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
TBATS | ✅ | ✅ | ✅ | ✅ |
Adapté à la modélisation de séries temporelles présentant une volatilité non constante dans le temps. Le modèle ARCH est un cas particulier de GARCH.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
GARCH | ✅ | ✅ | ✅ | ✅ | |
CAMBRE | ✅ | ✅ | ✅ | ✅ |
Modèles classiques pour établir une ligne de base.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
Moyenne historique | ✅ | ✅ | ✅ | ✅ | |
Naïf | ✅ | ✅ | ✅ | ✅ | |
Marche aléatoire avec dérive | ✅ | ✅ | ✅ | ✅ | |
SaisonnierNaïf | ✅ | ✅ | ✅ | ✅ | |
Moyenne de la fenêtre | ✅ | ||||
SaisonnierFenêtreMoyenne | ✅ |
Utilise une moyenne pondérée de toutes les observations passées où les poids diminuent de façon exponentielle dans le passé. Convient aux données présentant une tendance et/ou une saisonnalité claire. Utilisez la famille SimpleExponential
pour les données sans tendance ni saisonnalité claires.
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
SimpleExponentielLissage | ✅ | ||||
SimpleExponentielLissageOptimisé | ✅ | ||||
SaisonnierExponentielLissage | ✅ | ||||
SaisonnierExponentielLissageOptimisé | ✅ | ||||
Holt | ✅ | ✅ | ✅ | ✅ | |
HoltHivers | ✅ | ✅ | ✅ | ✅ |
Convient aux séries avec très peu d'observations non nulles
Modèle | Prévision ponctuelle | Prévisions probabilistes | Inéchantillonner les valeurs ajustées | Valeurs ajustées probabilistes | Caractéristiques exogènes |
---|---|---|---|---|---|
ADIDAS | ✅ | ✅ | ✅ | ||
CrostonClassique | ✅ | ✅ | ✅ | ||
CrostonOptimisé | ✅ | ✅ | ✅ | ||
CrostonSBA | ✅ | ✅ | ✅ | ||
IMAP | ✅ | ✅ | ✅ | ||
BST | ✅ | ✅ | ✅ |
Voir CONTRIBUTION.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 }
}
Merci à ces personnes merveilleuses (clé emoji) :
bleu ? | José Morales ? | Rayon Sugato | Jeff Tackes ? | darinkiste ? | Alec Hélyar | Dave Hirschfeld |
Mergenthaler | Proche | Yasslight90 ? | asinisant ? | Philippe Gilissen | Sébastien Hagn ? | Han Wang |
Ben Jeffrey ? | Beliavski | Mariana Menchero García | Nikhil Gupta ? | JD ? | Josh Attenberg | JeroenPeterBos |
Jeroen Van Der Donckt | Roymprog | Nelson Cárdenas Bolano | Kyle Schmaus | Akmal Soliev | Nick à | Kévin Kho |
Yiben Huang | Andrew Gross | taniishkaaa | Manuel Calzolari |
Ce projet suit la spécification de tous les contributeurs. Les contributions de toute nature sont les bienvenues !