Tweet Share Share

Zuletzt aktualisiert am April 12, 2020

exponentielle Glättung ist eine Zeitreihenprognosemethode für univariate Daten, die erweitert werden kann, um Daten mit einer systematischen Trend-oder Saisonkomponente zu unterstützen.

Es ist eine leistungsstarke Prognosemethode, die als Alternative zur beliebten Box-Jenkins ARIMA-Methodenfamilie verwendet werden kann.

In diesem Tutorial entdecken Sie die exponentielle Glättungsmethode für univariate Zeitreihenvorhersagen.,

Nach Abschluss dieses Tutorials wissen Sie:

  • Was exponentielle Glättung ist und wie sie sich von anderen Prognosemethoden unterscheidet.
  • Die drei wichtigsten Arten der exponentiellen Glättung und wie sie zu konfigurieren.
  • So implementieren Sie exponentielle Glättung in Python.

Starten Sie Ihr Projekt mit my new book Time Series Forecasting With Python, einschließlich Schritt-für-Schritt-Tutorials und den Python-Quellcodedateien für alle Beispiele.

Los geht ‚ s.,

Eine Sanfte Einführung in Exponentielle Glättung für Zeitreihen Prognose in Python
Foto von Wolfgang Staudt, einige Rechte vorbehalten.

Tutorial Übersicht

Dieses tutorial ist unterteilt in 4 teile; sie sind:

  1. Was Ist Exponentielle Glättung?
  2. Arten der exponentiellen Glättung
  3. So konfigurieren Sie die exponentielle Glättung
  4. Exponentielle Glättung in Python

Was ist exponentielle Glättung?

Exponentielle Glättung ist eine Zeitreihenprognosemethode für univariate Daten.,

Zeitreihenmethoden wie die ARIMA-Methodenfamilie von Box-Jenkins entwickeln ein Modell, bei dem die Vorhersage eine gewichtete lineare Summe der jüngsten Beobachtungen oder Verzögerungen der Vergangenheit ist.

Exponentielle Glättungsprognosemethoden sind insofern ähnlich, als eine Vorhersage eine gewichtete Summe vergangener Beobachtungen ist, das Modell jedoch explizit ein exponentiell abnehmendes Gewicht für vergangene Beobachtungen verwendet.

Insbesondere werden vergangene Beobachtungen mit einem geometrisch abnehmenden Verhältnis gewichtet.,

Prognosen, die mit exponentiellen Glättungsmethoden erstellt werden, sind gewichtete Durchschnittswerte vergangener Beobachtungen, wobei die Gewichte exponentiell absinken, wenn die Beobachtungen älter werden. Mit anderen Worten, je jünger die Beobachtung ist, desto höher ist das damit verbundene Gewicht.

— Seite 171, Forecasting: principles and practice, 2013.

Exponentielle Glättungsmethoden können als Peers und als Alternative zur beliebten Box-Jenkins ARIMA-Methodenklasse für Zeitreihenprognosen betrachtet werden.,

Zusammenfassend werden die Methoden manchmal als ETS-Modelle bezeichnet, die sich auf die explizite Modellierung von Fehler, Trend und Saisonalität beziehen.

Arten der exponentiellen Glättung

Es gibt drei Haupttypen von exponentiellen Glättung Zeitreihen Prognosemethoden.

Eine einfache Methode, die keine systematische Struktur annimmt, eine Erweiterung, die Trends explizit behandelt, und der fortschrittlichste Ansatz, der die Saisonalität unterstützt.,

Einzelne exponentielle Glättung

Einzelne exponentielle Glättung, kurz SES, auch Einfache exponentielle Glättung genannt, ist eine Zeitreihenvorhersagemethode für univariate Daten ohne Trend oder Saisonalität.

Es erfordert einen einzelnen Parameter, Alpha (a) genannt, auch Glättungsfaktor oder Glättungskoeffizient genannt.

Dieser Parameter steuert die Geschwindigkeit, mit der der Einfluss der Beobachtungen zu früheren Zeitschritten exponentiell abklingt. Alpha wird oft auf einen Wert zwischen 0 und 1 gesetzt., Große Werte bedeuten, dass das Modell hauptsächlich auf die jüngsten Beobachtungen der Vergangenheit achtet, während kleinere Werte bedeuten, dass bei der Vorhersage mehr von der Historie berücksichtigt wird.

Ein Wert nahe 1 zeigt schnelles Lernen an (dh nur die neuesten Werte beeinflussen die Prognosen), während ein Wert nahe 0 langsames Lernen anzeigt (frühere Beobachtungen haben einen großen Einfluss auf Prognosen).

— Seite 89, Praktische Zeitreihenprognose mit R, 2016.,

Hyperparameter:

  • Alpha: Glättungsfaktor für den Pegel.

Doppelte exponentielle Glättung

Doppelte exponentielle Glättung ist eine Erweiterung der exponentiellen Glättung, die explizit Unterstützung für Trends in der univariaten Zeitreihe hinzufügt.

Zusätzlich zum Alpha-Parameter zur Steuerung des Glättungsfaktors für das Niveau wird ein zusätzlicher Glättungsfaktor hinzugefügt, um den Zerfall des Einflusses der Trendänderung namens beta (b) zu steuern.,

Die Methode unterstützt Trends, die sich auf unterschiedliche Weise ändern: additiv und Multiplikativ, je nachdem, ob der Trend linear bzw. exponentiell ist.

Doppelte Exponentielle Glättung mit einer Additiv-trend ist klassisch bezeichnet, da Holt ‚ s linear trend-Modell, benannt nach dem Entwickler der Methode, Charles Holt.

  • Additiver Trend: Doppelte exponentielle Glättung mit linearem Trend.
  • Multiplikativer Trend: Doppelte exponentielle Glättung mit exponentiellem Trend.,

Bei längerfristigen (mehrstufigen) Prognosen kann sich der Trend unrealistisch fortsetzen. Daher kann es nützlich sein, den Trend im Laufe der Zeit zu dämpfen.

Dämpfung bedeutet, die Größe des Trends über zukünftige Zeitschritte auf eine gerade Linie zu reduzieren (kein Trend).

Die Prognosen, die durch Holts lineare Methode generiert werden, zeigen einen konstanten Trend (steigend oder abnehmend) unanständig in die Zukunft., Noch extremer sind die Prognosen, die durch die exponentielle Trendmethode generiert werden, die durch diese Beobachtung motiviert sind: Ein Parameter, der den Trend zu einer flachen Linie einige Zeit in der Zukunft“ dämpft“.

— Seite 183 Forecasting: principles and practice, 2013.

Wie bei der Modellierung des Trends selbst können wir beim Dämpfen des Trends dieselben Prinzipien anwenden, insbesondere additiv oder multiplikativ für einen linearen oder exponentiellen Dämpfungseffekt. Ein Dämpfungskoeffizient Phi (p) wird verwendet, um die Dämpfungsrate zu steuern.,

  • Additive Dämpfung: Dämpfen Sie einen Trend linear.
  • Multiplikative Dämpfung: Dämpfen Sie den Trend exponentiell.

Hyperparameter:

  • Alpha: Glättungsfaktor für den Pegel.
  • Beta: Glättungsfaktor für den trend.
  • Trendtyp: Additiv oder multiplikativ.
  • Dämpfen, Typ: Additiv oder multiplikativ.
  • Phi: Dämpfungskoeffizient.

Dreifache exponentielle Glättung

Die dreifache exponentielle Glättung ist eine Erweiterung der exponentiellen Glättung, die der univariaten Zeitreihe explizit Unterstützung für die Saisonalität hinzufügt.,

Diese Methode wird manchmal als Holt-Winters Exponential Smoothing bezeichnet, benannt nach zwei Mitwirkenden der Methode: Charles Holt und Peter Winters.

Zusätzlich zu den Alpha-und Beta-Glättungsfaktoren wird ein neuer Parameter namens Gamma (g) hinzugefügt, der den Einfluss auf die saisonale Komponente steuert.

Wie beim Trend kann die Saisonalität entweder als additiver oder multiplikativer Prozess für eine lineare oder exponentielle Änderung der Saisonalität modelliert werden.

  • Additive Saisonalität: Dreifache exponentielle Glättung mit linearer Saisonalität.,
  • Multiplikative Saisonalität: Dreifache exponentielle Glättung mit exponentieller Saisonalität.

Triple exponential glättung ist die erweiterte variation von exponential glättung und durch konfiguration, es kann auch entwickeln doppel und einzel exponential glättung modelle.

Als adaptive Methode ermöglicht die exponentielle Glättung von Holt-Winter, dass sich die Pegel -, Trend-und Saisonalitätsmuster im Laufe der Zeit ändern.

— Seite 95, Praktische Zeitreihenprognose mit R, 2016.,

Um sicherzustellen, dass die Saisonalität korrekt modelliert wird, muss zusätzlich die Anzahl der Zeitschritte in einem saisonalen Zeitraum (Zeitraum) angegeben werden. Wenn es sich bei der Serie beispielsweise um monatliche Daten handelte und sich die Saisonperiode jedes Jahr wiederholte, ist die Periode=12.

Hyperparameter:

  • Alpha: Glättungsfaktor für den Pegel.
  • Beta: Glättungsfaktor für den trend.
  • Gamma: Glättungsfaktor für die Saisonalität.
  • Trendtyp: Additiv oder multiplikativ.
  • Dämpfen, Typ: Additiv oder multiplikativ.
  • Phi: Dämpfungskoeffizient.,
  • Saisonalitätstyp: Additiv oder multiplikativ.
  • Periode: Zeitschritte in der Saisonperiode.

So konfigurieren Sie die exponentielle Glättung

Alle Modellhyperparameter können explizit angegeben werden.

Dies kann sowohl für Experten als auch für Anfänger eine Herausforderung sein.

Stattdessen ist es üblich, numerische Optimierung zu verwenden, um die Glättungskoeffizienten (Alpha, beta, Gamma und phi) für das Modell zu suchen und zu finanzieren, die zu dem niedrigsten Fehler führen.,

Eine robustere und objektivere Möglichkeit, Werte für die unbekannten Parameter zu erhalten, die in einer exponentiellen Glättungsmethode enthalten sind, besteht darin, sie aus den beobachteten Daten abzuschätzen. die unbekannten Parameter und die Anfangswerte für jede exponentielle Glättungsmethode können durch Minimierung des SSE geschätzt werden .

— Seite 177 Forecasting: principles and practice, 2013.,

Die Parameter, die die Art der Änderung des Trends und der Saisonalität angeben, z. B. ob sie additiv oder multiplikativ sind und ob sie gedämpft werden sollen, müssen explizit angegeben werden.

Exponentielle Glättung in Python

In diesem Abschnitt wird untersucht, wie exponentielle Glättung in Python implementiert wird.

Die Implementierungen der exponentiellen Glättung in Python werden in der Python-Bibliothek Statsmodels bereitgestellt.,

Die Implementierungen basieren auf der Beschreibung der Methode in Rob Hyndman und George Athanasopoulos‘ ausgezeichnetem Buch „Forecasting: Principles and Practice“, 2013 und ihren R-Implementierungen in ihrem „Forecast“ – Paket.

Einzelne exponentielle Glättung

Einzelne exponentielle Glättung oder einfache Glättung kann in Python über die SimpleExpSmoothing Statsmodels Klasse implementiert werden.

Zunächst muss eine Instanz der SimpleExpSmoothing Klasse instanziiert und die Trainingsdaten übergeben werden., Die Funktion fit () wird dann aufgerufen, um die Fit-Konfiguration bereitzustellen, insbesondere den Alpha-Wert smoothing_level. Wenn dies nicht bereitgestellt oder auf None festgelegt ist, optimiert das Modell den Wert automatisch.

Diese Funktion fit () gibt eine Instanz der HoltWintersResults-Klasse zurück, die die gelernten Koeffizienten enthält. Die Funktion forecast() oder predict () für das Ergebnisobjekt kann aufgerufen werden, um eine Prognose zu erstellen.,

Zum Beispiel:

Doppelte und dreifache exponentielle Glättung

Die einfache, doppelte und dreifache exponentielle Glättung kann in Python mithilfe der ExponentialSmoothing Statsmodels-Klasse implementiert werden.

Zunächst muss eine Instanz der ExponentialSmoothing-Klasse instanziiert werden, die sowohl die Trainingsdaten als auch eine Konfiguration für das Modell angibt.

Insbesondere müssen Sie die folgenden Konfigurationsparameter angeben:

  • trend: Der Typ der Trendkomponente, entweder als“ add „für additiv oder“ mul “ für Multiplikativ. Das Modellieren des Trends kann deaktiviert werden, indem er auf None gesetzt wird.,
  • gedämpft: Ob die Trendkomponente gedämpft werden soll oder nicht, entweder Wahr oder falsch.
  • saisonal: Die Art der saisonalen Komponente, entweder als“ add „für Additiv oder“ mul “ für multiplikativ. Die Modellierung der saisonalen Komponente kann deaktiviert werden, indem Sie auf None.
  • seasonal_periods: Die Anzahl der Zeitschritte in einem saisonalen Zeitraum, z. B. 12 für 12 Monate in einer jährlichen saisonalen Struktur (mehr hier).

Das Modell kann dann durch Aufrufen der Funktion fit() an die Trainingsdaten angepasst werden.,

Mit dieser Funktion können Sie entweder die Glättungskoeffizienten des exponentiellen Glättungsmodells angeben oder optimieren lassen. Standardmäßig sind sie optimiert (z. B. optimized=True). Diese Koeffizienten umfassen:

  • smoothing_level (alpha): der Glättungskoeffizient für die Ebene.
  • smoothing_slope (beta): der Glättungskoeffizient für den Trend.
  • smoothing_seasonal (gamma): der Glättungskoeffizient für die saisonale Komponente.
  • damping_slope (phi): der Koeffizient für den gedämpften Trend.,

Zusätzlich kann die fit-Funktion vor der Modellierung eine grundlegende Datenvorbereitung durchführen; insbesondere:

  • use_boxcox: Ob eine Leistungstransformation der Serie (True/False) oder das Lambda für die Transformation angegeben werden soll oder nicht.

Die Funktion fit () gibt eine Instanz der HoltWintersResults-Klasse zurück, die die gelernten Koeffizienten enthält. Die Funktion forecast() oder predict () für das Ergebnisobjekt kann aufgerufen werden, um eine Prognose zu erstellen.

Weiterlesen

Dieser Abschnitt enthält mehr Ressourcen zum Thema, wenn Sie tiefer gehen möchten.,

Tutorials

  • So suchen Sie die dreifache exponentielle Glättung für Zeitreihenprognosen in Python

Bücher

  • Kapitel 7 Exponentielle Glättung, Prognose: Prinzipien und Praxis, 2013.
  • – Abschnitt 6.4. Einführung in die Zeitreihenanalyse, Engineering Statistics Handbook, 2012.
  • Praktische Zeitreihenprognose mit R, 2016.

API

  • Statsmodels Zeitreihenanalyse tsa
  • statsmodels.tsa.holtwinters.SimpleExpSmoothing-API
  • statsmodels.tsa.holtwinters.ExponentialSmoothing-API
  • statsmodels.,tsa.holtwinters.HoltWintersResults API
  • Prognose: Prognosefunktionen für Zeitreihen und lineare Modelle R Paket

Artikel

  • Exponentielle Glättung auf Wikipedia

Zusammenfassung

In diesem Tutorial haben Sie die exponentielle Glättungsmethode für univariate Zeitreihenprognosen entdeckt.

Insbesondere haben Sie gelernt:

  • Was exponentielle Glättung ist und wie sie sich von anderen Prognosemethoden unterscheidet.
  • Die drei wichtigsten Arten der exponentiellen Glättung und wie sie zu konfigurieren.,
  • So implementieren Sie exponentielle Glättung in Python.

haben Sie Fragen?
stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein bestes tun zu beantworten.

Möchten Sie Zeitreihenprognosen mit Python entwickeln?

Entwickeln Sie Ihre Eigenen Prognosen in Minuten

…,mit nur ein paar Zeilen Python-Code

Entdecken Sie, wie in meinem neuen Ebook:
Einführung in die Zeitreihenprognose mit Python

Es umfasst Selbststudium Tutorials und End-to-End-Projekte zu Themen wie:Laden von Daten, Visualisierung, Modellierung, Algorithmus Tuning und vieles mehr…

Bringen Sie endlich Zeitreihenprognosen zu
Ihre eigenen Projekte

Überspringen Sie die Akademiker. Nur Ergebnisse.

Sehen Sie, Was im Inneren

Tweet teilen Teilen

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.