Tweet Share Share

laatst bijgewerkt op 12 April 2020

exponentiële smoothing is een tijdreekprognosemethode voor univariate gegevens die kan worden uitgebreid om gegevens met een systematische trend of seizoensgebonden component te ondersteunen.

het is een krachtige forecasting methode die kan worden gebruikt als een alternatief voor de populaire Box-Jenkins Arima familie van methoden.

in deze tutorial vindt u de exponentiële smoothing methode voor univariate tijdreeksvoorspelling.,

na het voltooien van deze tutorial, zult u weten:

  • Wat exponentiële smoothing is en hoe het verschilt van andere forecasting methoden.
  • de drie belangrijkste types van exponentiële smoothing en hoe ze te configureren.
  • Hoe exponentiële smoothing in Python te implementeren.

start uw project met my new book Time Series Forecasting met Python, inclusief stap-voor-stap tutorials en de Python broncode bestanden voor alle voorbeelden.

laten we beginnen.,

Een Zachte Inleiding tot exponentiële Smoothing voor Tijdreeksvoorspellingen in Python
Foto door Wolfgang Staudt, enkele rechten voorbehouden.

Tutorial Overview

Deze tutorial is verdeeld in 4 delen; ze zijn:

  1. Wat is exponentiële Smoothing?
  2. soorten exponentiële Smoothing
  3. Hoe exponentiële Smoothing configureren
  4. exponentiële Smoothing in Python

Wat is exponentiële Smoothing?

exponentiële smoothing is een tijdreeksprognosemethode voor univariate gegevens.,

Tijdreeksmethoden zoals de Box-Jenkins ARIMA-familie van methoden ontwikkelen een model waarbij de voorspelling een gewogen lineaire som is van recente waarnemingen of LAG ‘ s uit het verleden.

exponentiële smoothing forecasting methoden zijn vergelijkbaar in die zin dat een voorspelling is een gewogen som van eerdere waarnemingen, maar het model gebruikt expliciet een exponentieel afnemende gewicht voor eerdere waarnemingen.

in het bijzonder worden waarnemingen uit het verleden gewogen met een geometrisch afnemende ratio.,

voorspellingen die met behulp van exponentiële smoothingmethoden worden geproduceerd, zijn gewogen gemiddelden van waarnemingen uit het verleden, waarbij de gewichten exponentieel vervallen naarmate de waarnemingen ouder worden. Met andere woorden, hoe recenter de waarneming, hoe hoger het bijbehorende gewicht.

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

exponentiële smoothing methoden kunnen worden beschouwd als peers en een alternatief voor de populaire Box-Jenkins ARIMA klasse van methoden voor tijdreeksvoorspelling.,

gezamenlijk worden de methoden soms ETS-modellen genoemd, die verwijzen naar de expliciete modellering van fouten, trends en seizoensgebondenheid.

Types van exponentiële Smoothing

Er zijn drie belangrijke types van exponentiële smoothing tijdreeksprognosemethoden.

een eenvoudige methode die uitgaat van geen systematische structuur, een uitbreiding die expliciet trends behandelt, en de meest geavanceerde aanpak die ondersteuning voor seizoensgebondenheid toevoegt.,

Single Exponential Smoothing

Single Exponential Smoothing, afgekort ses, ook wel Simple Exponential Smoothing genoemd, is een tijdreeksprognosemethode voor univariate gegevens zonder trend of seizoensgebondenheid.

Het vereist een enkele parameter, genaamd Alfa (a), ook wel de smoothing factor of smoothing coëfficiënt.

Deze parameter bepaalt de snelheid waarmee de invloed van de waarnemingen in eerdere stappen exponentieel afneemt. Alpha wordt vaak ingesteld op een waarde tussen 0 en 1., Grote waarden betekenen dat het model vooral aandacht besteedt aan de meest recente waarnemingen uit het verleden, terwijl kleinere waarden betekenen dat meer van de geschiedenis in aanmerking wordt genomen bij het maken van een voorspelling.

een waarde dicht bij 1 geeft snel leren aan (dat wil zeggen dat alleen de meest recente waarden de voorspellingen beïnvloeden), terwijl een waarde dicht bij 0 aangeeft traag leren (waarnemingen uit het verleden hebben een grote invloed op voorspellingen).

— Page 89, Practical Time Series Forecasting with R, 2016.,

Hyperparameters:

  • Alfa: Afvlakkingsfactor voor het niveau.

Double Exponential Smoothing

Double Exponential Smoothing is een uitbreiding op Exponential Smoothing die expliciet ondersteuning toevoegt voor trends in de univariate tijdreeks.

naast de alfaparameter voor het regelen van de smoothing factor voor het niveau, wordt een extra smoothing factor toegevoegd om het verval van de invloed van de verandering in trend genaamd beta (b) te controleren.,

de methode ondersteunt trends die op verschillende manieren veranderen:een additief en een multiplicatief, afhankelijk van of de trend lineair of exponentieel is.

Double Exponential Smoothing met een additieve trend wordt klassiek aangeduid als Holt ‘ s linear trend model, genoemd naar de ontwikkelaar van de methode Charles Holt.

  • additieve Trend: Dubbele exponentiële Smoothing met een lineaire trend.
  • multiplicatieve Trend: Dubbele exponentiële Smoothing met een exponentiële trend.,

voor prognoses over langere afstanden (meerstaps) kan de trend zich op onrealistische wijze voortzetten. Als zodanig kan het nuttig zijn om de trend in de loop van de tijd te temperen.

temperen betekent het verminderen van de omvang van de trend in de toekomst stappen naar een rechte lijn (geen trend).

de voorspellingen die door de lineaire methode van Holt worden gegenereerd, geven een constante trend (toenemend of afnemende) onfatsoenlijk in de toekomst weer., Nog extremer zijn de voorspellingen gegenereerd door de exponentiële trendmethode gemotiveerd door deze observatie introduceerde een parameter die “dempt” de trend naar een vlakke lijn enige tijd in de toekomst.

— Page 183, Forecasting: principles and practice, 2013.

zoals bij het modelleren van de trend zelf, kunnen we dezelfde principes gebruiken om de trend te dempen, specifiek additief of multiplicatief voor een lineair of exponentieel dempend effect. Een dempingscoëfficiënt Phi (p) wordt gebruikt om de snelheid van demping te regelen.,

  • additieve demping: temperen een trend lineair.
  • multiplicatieve demping: De trend exponentieel temperen.

Hyperparameters:

  • Alfa: Afvlakkingsfactor voor het niveau.
  • Beta: gladmakende factor voor de trend.
  • Trendtype: additief of multiplicatief.
  • Damptype: additief of multiplicatief.
  • Phi: dempingscoëfficiënt.

Triple Exponential Smoothing

Triple Exponential Smoothing is een uitbreiding van Exponential Smoothing die expliciet ondersteuning voor seizoensgebondenheid toevoegt aan de univariate tijdreeks.,

Deze methode wordt soms Holt-Winters Exponential Smoothing genoemd, genoemd naar twee bijdragers aan de methode: Charles Holt en Peter Winters.

naast de alfa – en bèta-afvlakkingsfactoren wordt een nieuwe parameter toegevoegd, genaamd gamma (g), die de invloed op de seizoenscomponent regelt.

net als bij de trend kan de seizoensgebondenheid worden gemodelleerd als een additief of multiplicatief proces voor een lineaire of exponentiële verandering in de seizoensgebondenheid.

  • additieve Seizoensonaliteit: drievoudige exponentiële Smoothing met een lineaire seizoensonaliteit.,
  • multiplicatieve seizoensgebondenheid: drievoudig exponentieel gladmaken met een exponentiële seizoensgebondenheid.

Triple exponential smoothing is de meest geavanceerde variant van exponential smoothing en door configuratie kan het ook dubbele en enkele exponential smoothing modellen ontwikkelen.

omdat het een adaptieve methode is, laat de exponentiële smoothing Van Holt-Winter het niveau, de trend en de seizoensgebonden patronen in de loop van de tijd veranderen.

— Page 95, Practical Time Series Forecasting with R, 2016.,

om ervoor te zorgen dat de seizoensgebondenheid correct wordt gemodelleerd, moet bovendien het aantal tijdstappen in een seizoensperiode (periode) worden gespecificeerd. Bijvoorbeeld, als de reeks maandelijkse gegevens was en de seizoensperiode elk jaar herhaald, dan is de periode = 12.

Hyperparameters:

  • Alfa: Afvlakkingsfactor voor het niveau.
  • Beta: gladmakende factor voor de trend.
  • Gamma: gladmakende factor voor de seizoensgebondenheid.
  • Trendtype: additief of multiplicatief.
  • Damptype: additief of multiplicatief.
  • Phi: dempingscoëfficiënt.,
  • seizoensgebonden Type: additief of multiplicatief.
  • periode: Tijdstappen in seizoensperiode.

hoe exponentiële Smoothing configureren

alle modelhyperparameters kunnen expliciet worden opgegeven.

Dit kan een uitdaging zijn voor zowel experts als beginners.

in plaats daarvan is het gebruikelijk om numerieke optimalisatie te gebruiken om de afvlakkingscoëfficiënten (alfa, bèta, gamma en phi) voor het model te zoeken en te financieren die resulteren in de laagste fout.,

een meer robuuste en objectieve manier om waarden te verkrijgen voor de onbekende parameters die in een exponentiële smoothingmethode zijn opgenomen, is ze te schatten aan de hand van de waargenomen gegevens. de onbekende parameters en de beginwaarden voor elke exponentiële smoothing methode kunnen worden geschat door de SSE te minimaliseren .

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

de parameters die het type verandering in de trend en seizoensgebondenheid specificeren, zoals het weer ze zijn additief of multiplicatief en of ze moeten worden gedempt, moeten expliciet worden gespecificeerd.

exponentiële smoothing in Python

Deze sectie gaat in op het implementeren van exponentiële smoothing in Python.

de implementaties van exponentiële Smoothing in Python worden geleverd in de Statsmodels Python library.,

de implementaties zijn gebaseerd op de beschrijving van de methode in Rob Hyndman en George Athanasopoulos’ uitstekende boek “Forecasting: Principles and Practice,” 2013 en hun R implementaties in hun “forecast” pakket.

Single Exponential Smoothing

Single Exponential Smoothing of simple smoothing kan worden geïmplementeerd in Python via de Simplexpsmoothing Statsmodels class.

eerst moet een exemplaar van de simpleexpsmoothing-klasse worden geïnstalleerd en de trainingsgegevens worden doorgegeven., De fit () functie wordt dan genoemd het verstrekken van de fit configuratie, in het bijzonder de alpha waarde genaamd smoothing_level. Als dit niet wordt opgegeven of ingesteld op geen, zal het model automatisch de waarde optimaliseren.

Deze functie fit () geeft een instantie van de klasse HoltWintersResults terug die de geleerde coëfficiënten bevat. De forecast() of de predict () functie op het resultaatobject kan worden aangeroepen om een forecast te maken.,

bijvoorbeeld:

dubbele en drievoudige exponentiële Smoothing

enkele, dubbele en drievoudige exponentiële Smoothing kan worden geïmplementeerd in Python met behulp van de klasse ExponentialSmoothing Statsmodels.

eerst moet een instantie van de exponentialsmoothing-klasse worden geïnstalleerd, waarbij zowel de trainingsgegevens als enige configuratie voor het model worden gespecificeerd.

specifiek moet u de volgende configuratieparameters opgeven:

  • trend: het type trend component, als “add” voor Additief of “mul” voor multiplicatief. Het modelleren van de trend kan worden uitgeschakeld door het in te stellen op geen.,
  • gedempt: of de trend component gedempt moet worden, True Of False.
  • seizoensgebonden: het type seizoenscomponent, als “add” voor Additief of “mul” voor multiplicatief. Het modelleren van de seizoensgebonden component kan worden uitgeschakeld door het in te stellen op geen.
  • seizoenal_periodes: het aantal tijdstappen in een seizoensperiode, bijvoorbeeld 12 gedurende 12 maanden in een jaarlijkse seizoensstructuur (meer hier).

het model kan dan worden aangepast aan de trainingsgegevens door de functie fit() aan te roepen.,

met deze functie kunt u de afvlakkingscoëfficiënten van het exponentiële afvlakkingsmodel specificeren of ze laten optimaliseren. Standaard worden ze geoptimaliseerd (bijvoorbeeld geoptimaliseerd = True). Deze coëfficiënten omvatten:

  • smoothing_level (alpha): de smoothing coëfficiënt voor het niveau.
  • smoothing_slope (beta): de smoothing coëfficiënt voor de trend.
  • smoothing_seasonal( gamma): de smoothing coëfficiënt voor de seizoenscomponent.
  • temping_slope( phi): de coëfficiënt voor de temped trend.,

bovendien kan de fit-functie basisgegevensvoorbereiding uitvoeren voorafgaand aan het modelleren; specifiek:

  • use_boxcox: al dan niet een vermogenstransformatie van de serie uitvoeren (True/False) of de lambda voor de transformatie specificeren.

De functie fit () retourneert een instantie van de klasse HoltWintersResults die de geleerde coëfficiënten bevat. De forecast() of de predict () functie op het resultaatobject kan worden aangeroepen om een forecast te maken.

verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper wilt gaan.,

Tutorials

  • How To Grid Search Triple Exponential Smoothing for Time Series Forecasting in Python

Books

  • hoofdstuk 7 Exponential smoothing, Forecasting: principles and practice, 2013.
  • rubriek 6.4. Introduction to Time Series Analysis, Engineering Statistics Handbook, 2012.
  • Practical Time Series Forecasting with R, 2016.

API

  • Statsmodellen tijdreeksanalyse tsa
  • statsmodellen.tsa.holtwinters.Simplexpsmoothing API
  • statsmodellen.tsa.holtwinters.ExponentialSmoothing API
  • statsmodellen.,tsa.holtwinters.HoltWintersResults API
  • forecast: Forecasting functies voor tijdreeksen en lineaire modellen R pakket

artikelen

  • exponentiële smoothing op Wikipedia

samenvatting

In deze tutorial ontdekte u de exponentiële smoothing methode voor univariate tijdreeksvoorspelling.

specifiek leerde u:

  • Wat exponentiële smoothing is en hoe het verschilt van andere voorspellings methoden.
  • de drie belangrijkste types van exponentiële smoothing en hoe ze te configureren.,
  • Hoe exponentiële smoothing in Python te implementeren.

heeft u vragen?
Stel uw vragen in de opmerkingen hieronder en Ik zal mijn best doen om te beantwoorden.

wilt u Tijdreeksvoorspellingen ontwikkelen met Python?

Ontwikkel uw eigen voorspellingen in minuten

…,met slechts een paar regels python code

ontdek hoe in mijn nieuwe Ebook:
Inleiding tot Tijdreeksvoorspelling met Python

Het zelfstudie tutorials en end-to-end projecten behandelt over onderwerpen als:het laden van gegevens, visualisatie, modellering, algoritme tuning, en nog veel meer…

breng eindelijk Tijdreeksvoorspellingen naar
uw eigen projecten

sla de academici over. Alleen Resultaten.

bekijk wat er in

Tweet Share Share

Articles

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *