StatsForecast bietet eine Sammlung weit verbreiteter univariater Zeitreihen-Prognosemodelle, einschließlich automatischer ARIMA
, ETS
, CES
und Theta
Modellierung, die für hohe Leistung mit numba
optimiert sind. Es enthält auch eine große Auswahl an Benchmarking-Modellen.
Sie können StatsForecast
installieren mit:
pip install statsforecast
oder
conda install - c conda - forge statsforecast
Weitere Anweisungen finden Sie in unserer Installationsanleitung.
Minimales Beispiel
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 ])
Beginnen Sie mit dieser Kurzanleitung.
Befolgen Sie diese End-to-End-Anleitung für Best Practices.
Aktuelle Python-Alternativen für statistische Modelle sind langsam, ungenau und lassen sich nicht gut skalieren. Deshalb haben wir eine Bibliothek erstellt, die für Prognosen in Produktionsumgebungen oder als Benchmarks verwendet werden kann. StatsForecast
umfasst eine umfangreiche Modellbatterie, die Millionen von Zeitreihen effizient anpassen kann.
AutoARIMA
, AutoETS
, AutoCES
, MSTL
und Theta
in Python..fit
und .predict
. exogenous variables
und prediction intervals
für ARIMA.pmdarima
.R
.Prophet
.statsmodels
.numba
zu leistungsstarkem Maschinencode kompiliert.Fehlt etwas? Bitte öffnen Sie ein Problem oder schreiben Sie uns
End-to-End-Komplettlösung: Modelltraining, Bewertung und Auswahl für mehrere Zeitreihen
? Anomalieerkennung: Erkennen Sie Anomalien für Zeitreihen mithilfe von Vorhersageintervallen innerhalb der Stichprobe.
?? Kreuzvalidierung: Leistungsbewertung eines robusten Modells.
❄️ Mehrere Saisonalitäten: So prognostizieren Sie Daten mit mehreren Saisonalitäten mithilfe einer MSTL.
? Nachfragespitzen vorhersagen: Stromlastprognose zur Erkennung täglicher Spitzen und zur Reduzierung der Stromrechnungen.
? Intermittierende Nachfrage: Prognosereihe mit sehr wenigen Beobachtungen ungleich Null.
?️ Exogene Regressoren: wie Wetter oder Preise
Automatische Prognosetools suchen nach den besten Parametern und wählen das bestmögliche Modell für eine Gruppe von Zeitreihen aus. Diese Tools sind nützlich für große Sammlungen univariater Zeitreihen.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
AutoARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoETS | ✅ | ✅ | ✅ | ✅ | |
AutoCES | ✅ | ✅ | ✅ | ✅ | |
AutoTheta | ✅ | ✅ | ✅ | ✅ | |
AutoMFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoTBATS | ✅ | ✅ | ✅ | ✅ |
Diese Modelle nutzen die vorhandenen Autokorrelationen in der Zeitreihe.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
ARIMA | ✅ | ✅ | ✅ | ✅ | ✅ |
AutoRegressiv | ✅ | ✅ | ✅ | ✅ | ✅ |
Passen Sie zwei Theta-Linien an eine entsaisonalisierte Zeitreihe an, indem Sie verschiedene Techniken verwenden, um die beiden Theta-Linien zu erhalten und zu kombinieren, um die endgültigen Prognosen zu erstellen.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
Theta | ✅ | ✅ | ✅ | ✅ | |
Optimiertes Theta | ✅ | ✅ | ✅ | ✅ | |
DynamicTheta | ✅ | ✅ | ✅ | ✅ | |
DynamicOptimizedTheta | ✅ | ✅ | ✅ | ✅ |
Geeignet für Signale mit mehr als einer klaren Saisonalität. Nützlich für niederfrequente Daten wie Strom und Protokolle.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
MSTL | ✅ | ✅ | ✅ | ✅ | Wenn der Trendprognostiker dies unterstützt |
MFLES | ✅ | ✅ | ✅ | ✅ | ✅ |
TBATS | ✅ | ✅ | ✅ | ✅ |
Geeignet für die Modellierung von Zeitreihen, die im Zeitverlauf eine nicht konstante Volatilität aufweisen. Das ARCH-Modell ist ein Sonderfall von GARCH.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
GARCH | ✅ | ✅ | ✅ | ✅ | |
BOGEN | ✅ | ✅ | ✅ | ✅ |
Klassische Modelle zur Festlegung der Basislinie.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
Historischer Durchschnitt | ✅ | ✅ | ✅ | ✅ | |
Naiv | ✅ | ✅ | ✅ | ✅ | |
RandomWalkWithDrift | ✅ | ✅ | ✅ | ✅ | |
SaisonalNaiv | ✅ | ✅ | ✅ | ✅ | |
WindowAverage | ✅ | ||||
Saisonaler Fensterdurchschnitt | ✅ |
Verwendet einen gewichteten Durchschnitt aller vergangenen Beobachtungen, wobei die Gewichte in der Vergangenheit exponentiell abnehmen. Geeignet für Daten mit klarem Trend und/oder Saisonalität. Verwenden Sie die SimpleExponential
Familie für Daten ohne klaren Trend oder Saisonalität.
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
SimpleExponentialSmoothing | ✅ | ||||
EinfachExponentiellGlättungOptimiert | ✅ | ||||
SaisonalExponentielleGlättung | ✅ | ||||
SaisonalExponentiellGlättungOptimiert | ✅ | ||||
Holt | ✅ | ✅ | ✅ | ✅ | |
HoltWinters | ✅ | ✅ | ✅ | ✅ |
Geeignet für Serien mit sehr wenigen Beobachtungen ungleich Null
Modell | Punktvorhersage | Wahrscheinlichkeitsprognose | Angepasste Stichprobenwerte | Probabilistisch angepasste Werte | Exogene Merkmale |
---|---|---|---|---|---|
ADIDA | ✅ | ✅ | ✅ | ||
CrostonClassic | ✅ | ✅ | ✅ | ||
Crostonoptimiert | ✅ | ✅ | ✅ | ||
CrostonSBA | ✅ | ✅ | ✅ | ||
IMAPA | ✅ | ✅ | ✅ | ||
TSB | ✅ | ✅ | ✅ |
Siehe CONTRIBUTING.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 }
}
Der Dank geht an diese wunderbaren Menschen (Emoji-Taste):
blau ? | José Morales ? | Sugato Ray | Jeff Tackes ? | darinkist ? | Alec Helyar | Dave Hirschfeld |
Mergenthaler | Verwandtschaft | Yasslight90 ? | asinig ? | Philip Gillißen | Sebastian Hagn ? | Han Wang |
Ben Jeffrey ? | Beljawski | Mariana Menchero García | Nikhil Gupta ? | JD ? | Josh Attenberg | JeroenPeterBos |
Jeroen Van Der Donckt | Roymprog | Nelson Cárdenas Bolaño | Kyle Schmaus | Akmal Soliev | Nick To | Kevin Kho |
Yiben Huang | Andrew Gross | taniishkaaa | Manuel Calzolari |
Dieses Projekt folgt der All-Contributors-Spezifikation. Beiträge jeglicher Art willkommen!