Sidst Opdateret den April 12, 2020
Eksponentiel udjævning er en tidsserie forecasting metode for enkelt-data, der kan udvides til at understøtte data, der med en systematisk tendens, eller sæsonåben komponent.
det er en kraftfuld prognosemetode, der kan bruges som et alternativ til den populære bo.-Jenkins ARIMA family of methods.
i denne tutorial, vil du opdage den eksponentielle udjævning metode til univariate tidsserier prognoser.,
når du har gennemført denne tutorial, vil du vide:
- hvad eksponentiel udjævning er, og hvordan det adskiller sig fra andre prognosemetoder.
- de tre hovedtyper af eksponentiel udjævning og hvordan man konfigurerer dem.
- Sådan implementeres eksponentiel udjævning i Python.
Kick-starte dit projekt med min nye bog tidsserier Prognoser Med Python, herunder trin-for-trin vejledninger og Python kildekode-filer for alle eksempler.
lad os komme i gang.,
En Blid Introduktion til Eksponentiel Udjævning for tidsserier Prognoser i Python
Foto af Wolfgang Staudt, nogle rettigheder reserveret.
Tutorial Oversigt
Denne tutorial er opdelt i 4 dele; de er:
- Hvad Er Eksponentiel Udjævning?
- Typer af Eksponentiel Udglatning
- Hvordan du Konfigurerer Eksponentiel Udglatning
- Eksponentiel Udjævning i Python
Hvad Er Eksponentiel Udjævning?
eksponentiel udjævning er en tidsserieprognosemetode for univariate data.,
Tidsseriemetoder som bo.-Jenkins ARIMA-familien af metoder udvikler en model, hvor forudsigelsen er en vægtet lineær sum af nylige tidligere observationer eller lag ‘ er.eksponentiel udjævning af prognosemetoder er ens, idet en forudsigelse er en vægtet sum af tidligere observationer, men modellen bruger eksplicit en eksponentielt faldende vægt til tidligere observationer.
specifikt vægtes tidligere observationer med et geometrisk faldende forhold.,
prognoser produceret ved hjælp af eksponentielle udjævningsmetoder er vægtede gennemsnit af tidligere observationer, hvor vægtene nedbrydes eksponentielt, når observationerne bliver ældre. Med andre ord, jo nyere observationen er, jo højere er den tilknyttede vægt.
— side 171, Forecasting: principles and practice, 2013.
eksponentiel udjævning metoder kan betragtes som jævnaldrende og et alternativ til den populære bo.-Jenkins ARIMA klasse af metoder til tidsserier prognoser.,
samlet betegnes metoderne undertiden som ETS-modeller, der henviser til den eksplicitte modellering af fejl, tendens og sæsonbestemthed.
typer af eksponentiel udjævning
Der er tre hovedtyper af eksponentiel udjævning tidsserier prognosemetoder.
en simpel metode, der ikke antager nogen systematisk struktur, en udvidelse, der eksplicit håndterer tendenser, og den mest avancerede tilgang, der tilføjer support til sæsonbestemthed.,
Enkelt Eksponentiel Udglatning
Enkelt Eksponentiel Udjævning, SES for kort, der også kaldes Simpel Eksponentiel Udglatning, er en tidsserie forecasting metode for enkelt-data uden en tendens eller sæsonudsving.
det kræver en enkelt parameter, kaldet alpha (a), Også kaldet udjævningsfaktoren eller udjævningskoefficienten.
denne parameter styrer den hastighed, hvormed indflydelsen af observationer på tidligere tidspunkt trin henfalder eksponentielt. Alpha er ofte sat til en værdi mellem 0 og 1., Store værdier betyder, at modellen primært er opmærksom på de seneste tidligere observationer, mens mindre værdier betyder mere af historien tages i betragtning, når man foretager en forudsigelse.
en værdi tæt på 1 indikerer hurtig læring (det vil sige kun de seneste værdier påvirker prognoserne), mens en værdi tæt på 0 indikerer langsom læring (tidligere observationer har stor indflydelse på prognoser).
— Side 89, Praktiske tidsserier Prognoser med R, 2016.,
Hyperparametre:
- Alfa: udjævningsfaktor for niveauet.
Dobbelt Eksponentiel Udglatning
Dobbelt Eksponentiel Udjævning er en udvidelse til Eksponentiel Udjævning, der udtrykkeligt tilføjer understøttelse for tendenser i enkelt tidsserie.
ud over Alfa-parameteren til styring af udjævningsfaktor for niveauet tilføjes en yderligere udjævningsfaktor for at kontrollere forfaldet af indflydelsen af ændringen i trend kaldet beta (B).,
metoden understøtter tendenser, der ændrer sig på forskellige måder: et additiv og et multiplikativt, afhængigt af om tendensen er henholdsvis lineær eller eksponentiel.
Dobbelt eksponentiel udjævning med en additiv tendens kaldes klassisk Holts lineære trendmodel, opkaldt efter udvikleren af metoden Charles Holt.
- additiv tendens: Dobbelt eksponentiel udjævning med en lineær tendens.
- multiplikativ tendens: Dobbelt eksponentiel udjævning med en eksponentiel tendens.,
for prognoser for længere rækkevidde (multi-step) kan tendensen fortsætte urealistisk. Som sådan kan det være nyttigt at dæmpe tendensen over tid.
dæmpning betyder at reducere trendens størrelse over fremtidige tidstrin ned til en lige linje (ingen tendens).
prognoserne genereret af Holts lineære metode viser en konstant tendens (stigende eller faldende) uanstændigt ind i fremtiden., Endnu mere ekstreme er prognoserne genereret af den eksponentielle trendmetode motiveret af denne observation introduceret en parameter, der “dæmper” tendensen til en flad linje nogen tid i fremtiden.
— side 183, Forecasting: principles and practice, 2013.
som med modellering af selve tendensen kan vi bruge de samme principper til at dæmpe tendensen, specifikt additivt eller multiplikativt til en lineær eller eksponentiel dæmpningseffekt. En dæmpningskoefficient Phi (p) bruges til at styre dæmpningshastigheden.,
- additiv dæmpning: dæmp en trend lineært.
- multiplikativ dæmpning: Dæmp tendensen eksponentielt.
Hyperparametre:
- Alfa: udjævningsfaktor for niveauet.
- Beta: udjævningsfaktor for tendensen.
- Trendtype: additiv eller multiplikativ.
- Dampen Type: additiv eller multiplikativ.
- Phi: dæmpningskoefficient.
Triple Eksponentiel Udglatning
Triple Eksponentiel Udjævning er en udvidelse af Eksponentiel Udjævning, der udtrykkeligt tilføjer understøttelse for sæsonudsving til enkelt tidsserie.,
Denne metode kaldes undertiden Holt-Winters Eksponentiel Udjævning, opkaldt efter to bidragydere til metode: Charles Holt og Peter Vintre.
ud over alfa-og beta-udjævningsfaktorerne tilføjes en ny parameter kaldet gamma (g), der styrer indflydelsen på sæsonkomponenten.
som med tendensen kan sæsonbestemmelsen modelleres som enten en additiv eller multiplikativ proces for en lineær eller eksponentiel ændring i sæsonbestemthed.
- additiv sæsonbestemthed: tredobbelt eksponentiel udjævning med en lineær sæsonbestemthed.,
- multiplikativ sæsonbestemthed: tredobbelt eksponentiel udjævning med en eksponentiel sæsonbestemthed.
tredobbelt eksponentiel udjævning er den mest avancerede variation af eksponentiel udjævning, og gennem konfiguration kan den også udvikle dobbelt-og enkelt eksponentiel udjævningsmodeller.
som en adaptiv metode tillader Holt-Winterinters eksponentielle udjævning niveauet, trenden og sæsonmønstrene at ændre sig over tid.
— Side 95, Praktiske tidsserier Prognoser med R, 2016.,
for at sikre, at sæsonbestemmelsen er modelleret korrekt, skal antallet af tidstrin i en sæsonbestemt periode (periode) specificeres. For eksempel, hvis serien var månedlige data og sæsonperioden gentages hvert år, så er perioden=12.
Hyperparametre:
- Alfa: udjævningsfaktor for niveauet.
- Beta: udjævningsfaktor for tendensen.
- Gamma: udjævningsfaktor for sæsonudsving.
- Trendtype: additiv eller multiplikativ.
- Dampen Type: additiv eller multiplikativ.
- Phi: dæmpningskoefficient.,
- sæsonbestemt type: additiv eller multiplikativ.
- periode: tidstrin i sæsonperiode.
Sådan konfigureres eksponentiel udjævning
alle modelhyperparametre kan specificeres eksplicit.
dette kan være udfordrende for både eksperter og begyndere.
i Stedet, er det almindeligt at bruge numeriske optimering for at søge efter og finansiere udjævning koefficienter (alpha, beta, gamma, og phi) for den model, der resulterer i den laveste fejl.,
en mere robust og objektiv måde at opnå værdier for de ukendte parametre, der indgår i enhver eksponentiel smoothing metode er at vurdere dem ud fra de observerede data. de ukendte parametre og de oprindelige værdier for enhver eksponentiel udjævningsmetode kan estimeres ved at minimere sse .
— side 177, Forecasting: principles and practice, 2013.,
parametrene, der angiver typen af ændring i trend og sæsonbestemt, såsom vejr de er additive eller multiplikative, og om de skal dæmpes, skal specificeres eksplicit.
eksponentiel udjævning i Python
dette afsnit ser på, hvordan man implementerer eksponentiel udjævning i Python.
implementeringerne af eksponentiel udjævning i Python findes i Statsmodels Python-biblioteket.,
implementeringerne er baseret på beskrivelsen af metoden i Rob Hyndman og George Athanasopoulos’ fremragende bog “Forecasting: Principles and Practice,” 2013 og deres R implementeringer i deres “forecast” – pakke.
enkelt eksponentiel udjævning
enkelt eksponentiel udjævning eller simpel udjævning kan implementeres i Python via klassen Simplee .psmoothing Statsmodels.
først skal en forekomst af klassen Simplee .psmoothing instantieres og bestået træningsdataene., Fit () – funktionen kaldes derefter for at give fit-konfigurationen, specifikt alfa-værdien kaldet smoothing_level. Hvis dette ikke er angivet eller indstillet til ingen, optimerer modellen automatisk værdien.
denne fit () – funktion returnerer en forekomst af Holt .intersresults-klassen, der indeholder de lærte koefficienter. Prognosen() eller predict () – funktionen på resultatobjektet kan kaldes for at lave en prognose.,
For eksempel:
Dobbelt og Tredobbelt Eksponentiel Udglatning
Enkelt -, Dobbelt og Tredobbelt Eksponentiel Udjævning kan være implementeret i Python, der bruger de ExponentialSmoothing Statsmodels klasse.
først skal en forekomst af den Eksponentielleudjævningsklasse instantieres, idet der angives både træningsdata og en vis konfiguration for modellen.
specifikt skal du angive følgende konfigurationsparametre:
- trend: typen af trendkomponent, som enten “Tilføj” for additiv eller “mul” for multiplikativ. Modellering af trenden kan deaktiveres ved at indstille den til ingen.,
- dæmpet: hvorvidt trendkomponenten skal dæmpes, enten sandt eller falsk.
- sæsonbestemt: typen af sæsonbestemt komponent, som enten ” Tilføj “for additiv eller” mul ” for multiplikativ. Modellering af sæsonkomponenten kan deaktiveres ved at indstille den til ingen.
- sæsonperioder: antallet af tidstrin i en sæsonperiode, f.eks. 12 i 12 måneder i en årlig sæsonstruktur (mere her).
modellen kan derefter passe på træningsdataene ved at kalde fit () – funktionen.,
denne funktion giver dig mulighed for enten at specificere udjævningskoefficienterne for den eksponentielle udjævningsmodel eller få dem optimeret. Som standard optimeres de (f.eks. optimeret=True). Disse koefficienter inkluderer:
- smoothing_level (alpha): udjævningskoefficienten for niveauet.
- smoothing_slope (beta): udjævningskoefficienten for tendensen.
- smoothing_seasonal (gamma): udjævningskoefficienten for sæsonbestemtheden.
- damping_slope( phi): koefficienten for den dæmpede tendens.,
derudover kan fit-funktionen udføre grundlæggende dataforberedelse inden modellering; specifikt:
- use_bo .co.: hvorvidt der skal udføres en strømtransformation af serien (True / False) eller specificere lambda for transformationen.
fit () – funktionen returnerer en forekomst af Holt .intersresults-klassen, der indeholder de lærte koefficienter. Prognosen() eller predict () – funktionen på resultatobjektet kan kaldes for at lave en prognose.
yderligere læsning
dette afsnit indeholder flere ressourcer om emnet, hvis du ønsker at gå dybere.,
Tutorials
- Sådan Grid Search Triple Eksponentiel Udjævning for tidsserier Prognoser i Python
Bøger
- Kapitel 7 Eksponentiel udjævning, Prognoser: principper og praksis, 2013.
- afsnit 6. 4. Introduktion til tidsserier analyse, Engineering Statistics Handbook, 2012.
- praktiske tidsserier prognoser med R, 2016.
API
- Statsmodels Time Series analysis tsa
- statsmodels.tsa.Holt .inters.SimpleExpSmoothing API
- statsmodels.tsa.Holt .inters.E statponentialsmoothing API
- statsmodels.,tsa.Holt .inters.HoltWintersResults API
- prognose: Forecasting-Funktioner for tidsserier og Lineære Modeller, R-pakken
Artikel
- Eksponentiel udglatning på Wikipedia
Oversigt
I denne tutorial, du opdagede eksponentiel smoothing metode for enkelt tidsserie prognoser.
specifikt lærte du:
- hvilken eksponentiel udjævning er, og hvordan den adskiller sig fra andre prognosemetoder.
- de tre hovedtyper af eksponentiel udjævning og hvordan man konfigurerer dem.,
- Sådan implementeres eksponentiel udjævning i Python.
har du spørgsmål?
stil dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at svare.
vil du udvikle Tidsserieprognoser med Python?
udvikle dine egne prognoser i minutter
…,med bare et par linjer af python-kode
Oplev, hvordan i min nye e-Bog:
Introduktion til Tiden Række Prognoser Med Python
Det dækker self-undersøgelse tutorials og end-to-end-projekter om emner som:Indlæsning af data, visualisering, modellering, algoritme, tuning og meget mere…
endelig bringe tidsserier prognoser til
dine egne projekter
Spring akademikere. Bare Resultater.
se hvad der er inde