Tweet share Podělte

Naposledy Aktualizováno z 12. dubna, 2020

Exponenciální vyrovnávání je čas série forecasting metody univariate data, která mohou být rozšířena na podporu údajů systematický trend ani sezónní složku.

jedná se o výkonnou metodu předpovídání, která může být použita jako alternativa k populární rodině metod Box-Jenkins ARIMA.

v tomto tutoriálu objevíte exponenciální vyhlazovací metodu pro univariátní prognózu časových řad.,

po dokončení tohoto tutoriálu budete vědět:

  • co je exponenciální vyhlazování a jak se liší od jiných metod prognózování.
  • tři hlavní typy exponenciálního vyhlazování a jejich konfigurace.
  • jak implementovat exponenciální vyhlazování v Pythonu.

Kick-start svůj projekt s mým novým knihy časové řady prognózování s Python, včetně krok za krokem tutoriály a soubory zdrojového kódu Python pro všechny příklady.

začněme.,

Jemný Úvod do Exponenciální Vyrovnávání pro Čas Série Forecasting v Pythonu
Foto: Wolfgang Staudt, některá práva jsou vyhrazena.

přehled tutoriálu

tento tutoriál je rozdělen na 4 části; jsou to:

  1. co je exponenciální vyhlazení?
  2. typy exponenciálního vyhlazování
  3. Jak konfigurovat exponenciální vyhlazování
  4. exponenciální vyhlazování v Pythonu

co je exponenciální vyhlazování?

exponenciální vyhlazování je metoda prognózování časových řad pro univariátní data.,

metody časových řad, jako je řada metod Box-Jenkins ARIMA, vyvíjejí model, kde predikce je vážený lineární součet nedávných minulých pozorování nebo zpoždění.

Exponenciální vyrovnávání metody předvídání jsou podobné v tom, že predikce je vážený součet z minulých pozorování, ale model explicitně používá exponenciálně klesající váhy za posledních pozorování.

konkrétně jsou minulá pozorování vážena geometricky klesajícím poměrem.,

předpovědím pomocí exponenciální vyrovnávání metody jsou vážené průměry z minulých pozorování, s hmotností rozpadající se exponenciálně jako pozorování starší. Jinými slovy, čím novější pozorování, tím vyšší je související hmotnost.

– Strana 171, prognóza: zásady a praxe, 2013.

exponenciální vyhlazovací metody mohou být považovány za vrstevníky a alternativu k populární třídě metod pro předpovídání časových řad Box-Jenkins ARIMA.,

souhrnně jsou metody někdy označovány jako modely ETS s odkazem na explicitní modelování chyb, trendu a sezónnosti.

typy exponenciálního vyhlazování

existují tři hlavní typy metod prognózování časových řad exponenciálního vyhlazení.

jednoduchá metoda, která nepřebírá žádnou systematickou strukturu, rozšíření, které explicitně zpracovává trendy, a nejpokročilejší přístup, který přidává podporu sezónnosti.,

Jeden Exponenciální Vyrovnávání

Jednoduché Exponenciální Vyrovnávání, SES pro krátké, také volal Jednoduché Exponenciální Vyrovnávání, je čas série forecasting metody univariate data bez trend nebo sezónnost.

vyžaduje jediný parametr, nazývaný alfa (a), nazývaný také vyhlazovací faktor nebo koeficient vyhlazení.

tento parametr řídí rychlost, při které se vliv pozorování v předchozích časových krocích exponenciálně rozkládá. Alfa je často nastavena na hodnotu mezi 0 a 1., Velké hodnoty znamenají, že model věnuje pozornost hlavně nejnovějším minulým pozorováním, zatímco menší hodnoty znamenají, že při predikci se bere v úvahu více historie.

hodnota blízká 1 naznačuje, rychlé učení (to znamená, že pouze poslední hodnoty vlivem prognózy), zatímco hodnota blízko 0 indikuje pomalé učení (posledních pozorování mají velký vliv na prognózy).

— Page 89, praktické předpovědi časových řad s R, 2016.,

Hyperparametry:

  • Alpha: vyhlazovací faktor pro úroveň.

Dvojité Exponenciální Vyrovnávání

Dvojité Exponenciální Vyrovnávání je rozšíření Exponenciální Vyrovnávání, které výslovně přidává podporu pro trendy v jednorozměrné časové řady.

kromě parametru alfa pro řízení vyhlazovacího faktoru pro úroveň se přidává další vyhlazovací faktor pro kontrolu rozpadu vlivu změny trendu zvaného beta (b).,

metoda podporuje trendy, které se mění různými způsoby: přísada a multiplikativní, v závislosti na tom, zda je trend lineární nebo exponenciální.

Dvojité Exponenciální Vyrovnávání s aditivní trend je klasicky označovány jako holtovo lineární trend model, pojmenovaný pro vývojáře metody Charles Holt.

  • aditivní Trend: dvojité exponenciální vyhlazování s lineárním trendem.
  • multiplikativní Trend: dvojité exponenciální vyhlazování s exponenciálním trendem.,

pro prognózy delšího rozsahu (multi-step) může trend pokračovat nerealisticky. Jako takový může být užitečné tlumit trend v průběhu času.

tlumení znamená zmenšení velikosti trendu v průběhu budoucího času na přímku (žádný trend).

předpovědi generované Holtovou lineární metodou vykazují konstantní trend (rostoucí nebo klesající) neslušně do budoucnosti., Ještě extrémnější jsou předpovědi generované exponenciální trend metodou Motivován toto pozorování zaveden parametr „tlumí“ trend rovnou linii nějaký čas v budoucnosti.

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

stejně jako při modelování samotného trendu můžeme použít stejné principy při tlumení trendu, konkrétně aditivně nebo multiplikativně pro lineární nebo exponenciální tlumící efekt. Pro řízení rychlosti tlumení se používá koeficient tlumení Phi (p).,

  • tlumení aditiv: lineárně tlumí trend.
  • multiplikativní tlumení: exponenciálně Utlumte trend.

Hyperparametry:

  • Alpha: vyhlazovací faktor hladiny.
  • Beta: vyhlazující faktor trendu.
  • typ trendu: aditivní nebo multiplikativní.
  • tlumit Typ: aditivní nebo multiplikativní.
  • Phi: koeficient tlumení.

Triple exponenciální vyhlazování

Triple exponenciální vyhlazování je rozšíření exponenciálního vyhlazování, které explicitně přidává podporu sezónnosti do univariátní časové řady.,

tato metoda se někdy nazývá Holt-Winters exponenciální vyhlazování, pojmenované pro dva přispěvatele k metodě: Charles Holt a Peter Winters.

kromě faktorů vyhlazování alfa a beta se přidává nový parametr nazvaný gamma (g), který řídí vliv na sezónní složku.

stejně jako u trendu může být sezónnost modelována jako aditivní nebo multiplikativní Proces pro lineární nebo exponenciální změnu sezónnosti.

  • aditivní sezónnost: trojité exponenciální vyhlazování s lineární sezónností.,
  • multiplikativní sezónnost: trojité exponenciální vyhlazování s exponenciální sezónností.

trojité exponenciální vyhlazování je nejpokročilejší variantou exponenciálního vyhlazování a prostřednictvím konfigurace může také vyvinout dvojité a jediné exponenciální vyhlazovací modely.

jako adaptivní metoda umožňuje exponenciální vyhlazování Holt-Winter v průběhu času měnit vzorce úrovně, trendu a sezónnosti.

— Page 95, praktické předpovědi časových řad s R, 2016.,

aby bylo zajištěno, že sezónnost je modelována správně, musí být specifikován počet časových kroků v sezónním období (období). Například, pokud série byla měsíční data a sezónní období se opakuje každý rok, pak období=12.

Hyperparametry:

  • Alpha: vyhlazovací faktor pro úroveň.
  • Beta: vyhlazující faktor trendu.
  • Gamma: vyhlazovací faktor pro sezónnost.
  • typ trendu: aditivní nebo multiplikativní.
  • tlumit Typ: aditivní nebo multiplikativní.
  • Phi: koeficient tlumení.,
  • typ sezónnosti: aditivní nebo multiplikativní.
  • období: časové kroky v sezónním období.

Jak konfigurovat exponenciální vyhlazování

všechny hyperparametry modelu lze specifikovat explicitně.

to může být náročné pro odborníky i začátečníky.

místo toho je běžné používat numerickou optimalizaci pro vyhledávání a financování vyhlazovacích koeficientů (alfa, beta, gama a phi) pro model, který má za následek nejnižší chybu.,

více robustní a objektivní způsob, jak získat hodnoty pro neznámé parametry zahrnuty v každém exponenciální vyrovnávání metody je odhadnout z pozorovaných údajů. neznámé parametry a počáteční hodnoty pro jakoukoli exponenciální vyhlazovací metodu lze odhadnout minimalizací SSE .

– Strana 177, prognóza: zásady a praxe, 2013.,

parametry, které specifikují typ změny v trendu a sezónnosti, například o počasí jsou aditivní nebo multiplikativní a zda by měly být tlumen, musí být uvedeno výslovně.

exponenciální vyhlazování v Pythonu

tato část se zabývá implementací exponenciálního vyhlazování v Pythonu.

implementace exponenciálního vyhlazování v Pythonu jsou poskytovány v knihovně Statsmodels Python.,

implementace jsou založeny na popisu metody v Rob Hyndman a George Athanasopoulos‘ vynikající kniha „Prognózování: Principy a Praxe,“ 2013 a jejich R implementací v jejich „prognózy“ balíček.

Single exponenciální vyhlazování

Single exponenciální vyhlazování nebo jednoduché vyhlazení lze implementovat v Pythonu přes simpleexpsmoothing Statsmodels třídy.

nejprve musí být instance třídy SimpleExpSmoothing instantována a předána data školení., Funkce fit () se pak nazývá poskytování konfigurace fit, konkrétně hodnoty alfa zvané smoothing_level. Pokud to není poskytnuto nebo nastaveno na žádné, model automaticky optimalizuje hodnotu.

tato funkce fit () vrací instanci třídy HoltWintersResults, která obsahuje naučené koeficienty. Předpověď() nebo Predikce () Funkce na objektu výsledek může být volána, aby se Předpověď.,

například:

Dvojité a Trojité Exponenciální Vyrovnávání

jednoduché, Dvojité a Trojité Exponenciální Vyrovnávání může být realizován v Pythonu pomocí ExponentialSmoothing Statsmodels třídy.

nejprve musí být instance třídy ExponentialSmoothing instantní, specifikující jak tréninková data, tak nějakou konfiguraci modelu.

Konkrétně, musíte zadat následující konfigurační parametry:

  • trend: typ trendové složky, jako buď „přidat“ pro doplňkové látky nebo „mul“ pro multiplikativní. Modelování trendu lze zakázat nastavením na žádný.,
  • tlumené: zda má být trendová složka tlumena, buď pravdivá nebo nepravdivá.
  • sezónní: Typ sezónní složky, jako „add“ pro aditivum nebo „mul“ pro multiplikativní. Modelování sezónní komponenty lze vypnout nastavením na žádný.
  • seasonal_periods: počet časových kroků v sezónním období, např. 12 po dobu 12 měsíců v roční sezónní struktuře (více zde).

model se pak vejde do tréninkových dat voláním funkce fit ().,

tato funkce umožňuje buď zadat vyhlazovací koeficienty exponenciálního vyhlazovacího modelu, nebo je nechat optimalizovat. Ve výchozím nastavení jsou optimalizovány (např. Optimalizováno=True). Tyto koeficienty zahrnují:

  • smoothing_level (alpha): koeficient vyhlazení úrovně.
  • smoothing_slope (beta): koeficient vyhlazení trendu.
  • smoothing_seasonal( gamma): koeficient vyhlazení sezónní složky.
  • damping_slope( phi): koeficient pro tlumený trend.,

Navíc, fit funkce můžete provádět základní příprava dat před modelování; konkrétně:

  • use_boxcox: Zda má nebo nemá provádět moci transformovat série (True/False), nebo zadat lambda pro transformaci.

funkce fit() vrátí instanci třídy HoltWintersResults, která obsahuje naučené koeficienty. Předpověď() nebo Predikce () Funkce na objektu výsledek může být volána, aby se Předpověď.

další čtení

tato část poskytuje více zdrojů na toto téma, pokud chcete jít hlouběji.,

Návody

  • Jak Grid Search Trojité Exponenciální Vyrovnávání pro Čas Série Forecasting v Pythonu

Knihy

  • Kapitola 7 Exponenciální vyhlazování, Prognózování: principy a praxe, 2013.
  • bod 6.4. Úvod do analýzy časových řad, Engineering Statistics Handbook, 2012.
  • praktické předpovědi časových řad s R, 2016.

API

  • statsmodels Analýza časových řad tsa
  • statsmodels.tsa.holtwinters.SimpleExpSmoothing API
  • statsmodels.tsa.holtwinters.ExponentialSmoothing API
  • statsmodels.,tsa.holtwinters.HoltWintersResults API
  • prognóza: Předpovídání Funkce pro Časové Řady a Lineární Modely R balíček

Články

  • Exponenciální vyhlazování na Wikipedii

Shrnutí

V tomto tutoriálu, se objevil exponenciální vyrovnávání metody pro jednorozměrné časové řady prognóz.

konkrétně jste se dozvěděli:

  • co je exponenciální vyhlazování a jak se liší od jiných metod prognózy.
  • tři hlavní typy exponenciálního vyhlazování a jejich konfigurace.,
  • jak implementovat exponenciální vyhlazování v Pythonu.

máte nějaké dotazy?
Ptejte se v komentářích níže a já se budu snažit odpovědět.

chcete vytvořit předpovědi časových řad s Pythonem?

Vytvořte si vlastní prognózy v minutách

…,s jen pár řádek python kódu

Zjistit, jak můj nový Ebook:
Úvod do Časové Řady Předpovědi S Python

To zahrnuje self-studium cvičení a end-to-end projektů na témata, jako jsou:Načítání dat, vizualizace, modelování, algoritmus ladění, a mnohem více…

konečně přinést prognózy časových řad na
své vlastní projekty

přeskočit akademiky. Jen Výsledky.

podívejte se, co je uvnitř

Tweet Share

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *