Sist Oppdatert 12 April, 2020
Eksponentiell glatting er en tidsserier prognoser metode for univariate data som kan utvides til å støtte data med en systematisk trend eller sesongmessige komponent.
Det er en kraftig prognoser metode som kan brukes som et alternativ til den populære Box-Jenkins ARIMA familie av metoder.
I denne opplæringen, vil du oppdage eksponentiell glatting metode for univariate tidsserier prognoser.,
Etter å ha fullført denne opplæringen, vil du vite:
- Hva eksponentiell glatting er og hvordan det er forskjellig fra andre prognoser metoder.
- De tre hovedtyper av eksponentiell glatting og hvordan du konfigurerer dem.
- Hvordan å implementere eksponentiell glatting i Python.
en Kick-start på prosjektet med min nye bok tidsserier Prognoser Med Python, inkludert trinnvise veiledninger og Python kildekoden filer for alle eksempler.
La oss komme i gang.,
En Forsiktig Introduksjon til Eksponentiell Glatting for tidsserier Prognoser i Python
Foto: Wolfgang Staudt, noen rettigheter er reservert.
Veiledning Oversikt
Denne opplæringen er delt inn i 4 deler; de er:
- Hva Er Eksponentiell Glatting?
- Typer Eksponentiell Glatting
- Hvordan du Konfigurerer Eksponentiell Glatting
- Eksponentiell Glatting i Python
Hva Er Eksponentiell Glatting?
Eksponentiell glatting er en tidsserier prognoser metode for univariate data.,
tidsserier metoder som Box-Jenkins ARIMA familie av metoder utvikle en modell der prediksjon er et vektet lineær summen av siste observasjoner eller forsinkelser.
Eksponentiell glatting prognoser metoder er like i at en prognose er en vektet sum av tidligere observasjoner, men modellen eksplisitt bruker en eksponensielt avtagende vekt på tidligere observasjoner.
Spesielt, tidligere observasjoner er vektet med en geometrisk avtagende forhold.,
Prognoser produsert ved hjelp av eksponentiell glatting metoder er vektede gjennomsnitt av tidligere observasjoner, med vekter råtnende eksponentielt som observasjonene blir eldre. Med andre ord, jo mer de siste observasjon jo høyere forbundet vekt.
— Side 171, Prognoser: prinsipper og praksis, 2013.
Eksponentiell glatting metoder kan betraktes som likeverdige og et alternativ til den populære Box-Jenkins ARIMA klasse av metoder for tidsserier prognoser.,
Samlet, metodene som er noen ganger referert til som ANTI-modeller, med henvisning til eksplisitt modellering av Feil, Trend og Sesongvariasjoner.
Typer Eksponentiell Glatting
Det er tre hovedtyper av eksponentiell glatting tidsserier prognoser metoder.
En enkel metode som forutsetter ingen systematisk struktur, en utvidelse som eksplisitt håndterer trender, og den mest avanserte tilnærming som legger til støtte for sesongvariasjoner.,
Enkelt Eksponentiell Glatting
Enkelt Eksponentiell Glatting, SES for kort, også kalt Enkle Eksponentiell Glatting, er en tidsserier prognoser metode for univariate data uten en trend eller sesongvariasjoner.
Det krever en enkelt parameter som kalles alfa (a), også kalt utjevning faktor eller utjevning koeffisient.
Denne parameteren styrer hastigheten som påvirkning av observasjoner på før tiden trinn forfall eksponentielt. Alpha er ofte satt til en verdi mellom 0 og 1., Store verdier betyr at modellen betaler oppmerksomhet i hovedsak til de siste observasjoner, mens mindre verdier betyr mer av historien er tatt i betraktning når du gjør et anslag.
En verdi nær 1 indikerer rask læring (det er bare den mest oppdaterte verdier påvirke prognoser), mens en verdi nær 0 indikerer sakte læring (tidligere observasjoner har en stor innflytelse på prognoser).
— Side 89, Praktisk tidsserier Prognoser med R, 2016.,
Hyperparameters:
- Alpha: Utjevning faktor for nivået.
Dobbel Eksponentiell Glatting
Dobbel Eksponentiell Glatting er en utvidelse til Eksponentiell Glatting, som eksplisitt legger til støtte for trender i den univariate tidsserier.
I tillegg til alpha parameter for å styre utjevning faktor for nivået, en ytterligere utjevning faktor er lagt til kontroll nedbrytning av påvirkning av endring i trenden som kalles beta (b).,
metoden støtter trender som endrer på forskjellige måter: en additiv og en multiplicative, avhengig av om trenden er lineær eller eksponentiell henholdsvis.
Dobbel Eksponentiell Glatting med en additiv trenden er klassisk referert til som Holt ‘ s lineær trend-modellen, som heter for utvikleren av metode Charles Holt.
- Additiv Trend: Dobbeltrom Eksponentiell Glatting med en lineær trend.
- Multiplicative Trend: Dobbeltrom Eksponentiell Glatting med en eksponentiell trend.,
For lengre rekkevidde (multi-trinn) prognoser denne trenden kan fortsette på urealistisk. Som sådan, kan det være nyttig å dempe utviklingen over tid.
Demping betyr at du reduserer størrelsen på trenden over fremtidige tiden trinn ned til en rett linje (ingen trend).
De prognoser som er generert av Holt ‘ s lineær metode vise en konstant trend (øke eller minske) indecently inn i fremtiden., Enda mer ekstrem er prognoser som er generert av eksponentiell trend metode Motivert av denne observasjonen innført en parameter som «demper» trenden til en flat linje en gang i fremtiden.
— Side 183, Prognoser: prinsipper og praksis, 2013.
Som med modellering trenden i seg selv, vi kan bruke de samme prinsippene i demping trenden, spesielt additively eller multiplicatively for en lineær eller eksponentiell dempende effekt. En demping Phi-koeffisienten (p) brukes til å styre hastigheten av demping.,
- Additiv Demping: Fukt en trend lineært.
- Multiplicative Demping: Fukt trenden eksponentielt.
Hyperparameters:
- Alpha: Utjevning faktor for nivået.
- Beta: Utjevning faktor for utviklingen.
- Trend Type: Additiv eller multiplicative.
- Fukt Type: Additiv eller multiplicative.
- Phi: Demping koeffisient.
Trippel Eksponentiell Glatting
Trippel Eksponentiell Glatting er en forlengelse av Eksponentiell Glatting, som eksplisitt legger til støtte for sesongvariasjoner til univariate tidsserier.,
Denne metoden er noen ganger kalt Holt-Winters Eksponentiell Glatting, oppkalt etter to bidragsytere til metode: Charles Holt og Peter Vintre.
I tillegg til alfa-og beta utjevning faktorer, en ny parameter er lagt kalt gamma (g) som styrer innflytelse på sesongens komponent.
Som med trend, sesongvariasjoner kan bli modellert som en additiv eller multiplicative prosess for en lineær eller eksponentiell endringer i sesongvariasjoner.
- Additiv Sesongvariasjoner: Trippel Eksponentiell Glatting med en lineær sesongvariasjoner.,
- Multiplicative Sesongvariasjoner: Trippel Eksponentiell Glatting med en eksponentiell sesongvariasjoner.
Trippel eksponentiell glatting er den mest avanserte varianten av eksponentiell glatting og gjennom konfigurasjon, kan det også utvikle dobbelt-og enkeltrom eksponentiell glatting modeller.
å Være en adaptiv metode, Holt-Vinteren er eksponentiell glatting lar nivå, trend og sesongvariasjoner mønstre til å endre seg over tid.
— Side 95, Praktisk tidsserier Prognoser med R, 2016.,
i Tillegg, for å sikre at sesongvariasjoner er modellert riktig, nummer tid trinnene i en sesong (Periode) må angis. For eksempel, hvis serien var månedlige data og sesong gjentatt hvert år, så Periode=12.
Hyperparameters:
- Alpha: Utjevning faktor for nivået.
- Beta: Utjevning faktor for utviklingen.
- Gamma: Utjevning faktor for sesongvariasjoner.
- Trend Type: Additiv eller multiplicative.
- Fukt Type: Additiv eller multiplicative.
- Phi: Demping koeffisient.,
- Sesongvariasjoner Type: Additiv eller multiplicative.
- Periode: Tid, trinn i sesong.
Hvordan du Konfigurerer Eksponentiell Glatting
Alle av modellen hyperparameters kan være angitt eksplisitt.
Dette kan være utfordrende for eksperter og nybegynnere likt.
i Stedet er det vanlig å bruke numerisk optimering for å søke etter og fond utjevning koeffisienter (alfa -, beta -, gamma, og phi) for modellen som resulterer i de laveste feil.,
en mer robust og objektiv måte for å oppnå verdier for de ukjente parametrene inngår i en eksponentiell glatting metode er å beregne dem fra observerte data. den ukjente parametre og de første verdiene for eksponentiell glatting metoden kan estimeres ved å minimere SSE .
— Side 177, Prognoser: prinsipper og praksis, 2013.,
parametere som angir hvilken type endring i trenden og sesongvariasjoner, for eksempel vær-de er additiv eller multiplicative, og om de bør bli dempet, må angis eksplisitt.
Eksponentiell Glatting i Python
Denne delen ser vi på hvordan du kan implementere eksponentiell glatting i Python.
implementeringer av Eksponentiell Glatting i Python er gitt i Statsmodels Python library.,
implementasjoner basert på beskrivelse av metoden i Rob Hyndman og George Athanasopoulos’ en utmerket bok «Prognoser: Prinsipper og Praksis,» 2013 og deres R implementeringer i deres «forecast» – pakke.
Enkelt Eksponentiell Glatting
Enkelt Eksponentiell Glatting eller enkle utjevning kan implementeres i Python via SimpleExpSmoothing Statsmodels klasse.
for det Første, en forekomst av SimpleExpSmoothing klasse må være startet og bestått opplæring data., Den passer () – funksjonen kalles da gir den passer konfigurasjon, spesielt alpha-verdi kalt smoothing_level. Hvis dette ikke er oppgitt eller satt til Ingen, modellen vil automatisk optimalisere verdien.
Dette passer () – funksjonen returnerer en instans av HoltWintersResults klasse som inneholder lært koeffisienter. Prognosen() eller forutsi () – funksjonen på resultatet objekt kan være kalt til å lage en prognose.,
For eksempel slik:
Dobbeltrom og Tremannsrom Eksponentiell Glatting
Enkeltrom, Dobbeltrom og Tremannsrom Eksponentiell Glatting kan implementeres i Python bruker ExponentialSmoothing Statsmodels klasse.
for det Første, en forekomst av ExponentialSmoothing klasse må være startet, spesifisere både trening data og noen konfigurasjon for modellen.
Spesielt, må du angi følgende parametere:
- trend: type trend komponent, som enten «legg til» for additiv eller «mul» for multiplicative. Modellering trenden kan deaktiveres ved å sette den til Ingen.,
- dempet: Hvorvidt trenden komponenten bør være dempet, enten Sann eller Usann.
- sesongens: type sesongens komponent, som enten «legg til» for additiv eller «mul» for multiplicative. Modellering sesongens komponent kan deaktiveres ved å sette den til Ingen.
- seasonal_periods: antallet tid trinnene i en sesong, for eksempel 12 for 12 måneder i en årlig sesongens struktur (mer her).
modellen kan da være passe på trening data ved å ringe det passer () – funksjonen.,
Denne funksjonen kan du enten angi utjevning koeffisienter for eksponentiell glatting modell eller har dem optimalisert. Som standard, de er optimalisert (f.eks. optimalisert=True). Disse koeffisientene er:
- smoothing_level (alpha): utjevning koeffisient for nivået.
- smoothing_slope (beta): utjevning koeffisient for trenden.
- smoothing_seasonal (gamma): utjevning koeffisient for sesongens komponent.
- damping_slope (phi): koeffisient for dempet trend.,
i Tillegg, fit-funksjonen kan utføre grunnleggende data forberedelser før modellering; spesielt:
- use_boxcox: Om ikke å utføre en strøm forvandle av serien (True/False) eller angi lambda for transform.
fit () – funksjonen vil returnere en instans av HoltWintersResults klasse som inneholder lært koeffisienter. Prognosen() eller forutsi () – funksjonen på resultatet objekt kan være kalt til å lage en prognose.
Mer å Lese
Dette avsnittet gir mer ressurser på emnet dersom du er ute etter å gå dypere.,
Tutorials
- Hvordan å Rutenett Søk Trippel Eksponentiell Glatting for tidsserier Prognoser i Python
Bøker
- Kapittel 7 Eksponentiell glatting, Prognoser: prinsipper og praksis, 2013.
- Kapittel 6.4. Introduksjon til tidsserieanalyse, Engineering Statistikk Håndbok, 2012.
- Praktisk tidsserier Prognoser med R, 2016.
API
- Statsmodels tidsserieanalyse tsa
- statsmodels.tsa.holtwinters.SimpleExpSmoothing API
- statsmodels.tsa.holtwinters.ExponentialSmoothing API
- statsmodels.,tsa.holtwinters.HoltWintersResults API
- prognose: Prognoser Funksjoner for Gang-Serien og Lineære Modeller R pakken
Artikler
- Eksponentiell glatting på Wikipedia
Oppsummering
I denne opplæringen, at du oppdaget eksponentiell glatting metode for univariate tidsserier prognoser.
Spesifikt, du lært:
- Hva eksponentiell glatting er og hvordan det er forskjellig fra andre prognose metoder.
- De tre hovedtyper av eksponentiell glatting og hvordan du konfigurerer dem.,
- Hvordan å implementere eksponentiell glatting i Python.
har du spørsmål?
Stille dine spørsmål i kommentarfeltet under, og jeg vil gjøre mitt beste for å svare.
– >
Vil Utvikle tidsserier Prognoser med Python?
Utvikle Dine Egne Prognoser i løpet av Minutter
…,med bare et par linjer av python-kode
Oppdag hvordan i min nye Bok:
Innføring i tidsserier Prognoser Med Python
Det dekker selvstudium tutorials og ende-til-ende prosjekter på temaer som:Lasting av data, visualisering, modellering, algoritme for søking, og mye mer…
Endelig Få tidsserier Prognoser for
Dine Egne Prosjekter
Hoppe over Akademikere. Bare Resultater.
Se Hva som er Inni