Utoljára Frissítve április 12-én, 2020-ig
Exponenciális simítás az idő sorozat előrejelzési módszer univariate adat, amely támogatja az adatok szisztematikus trend, vagy szezonális komponens.
Ez egy erőteljes előrejelzési módszer, amelyet a népszerű Box-Jenkins ARIMA módszercsalád alternatívájaként lehet használni.
ebben a bemutatóban felfedezheti az exponenciális simítási módszert az univariate idősorok előrejelzéséhez.,
a bemutató befejezése után tudni fogja:
- mi az exponenciális simítás, és hogyan különbözik a többi előrejelzési módszertől.
- Az exponenciális simítás három fő típusa és azok konfigurálásának módja.
- hogyan lehet exponenciális simítást végrehajtani Python-ban.
Kick-start your project with my new book Time Series Forecasting With Python, including step-by-step tutorials and the Python source code files for all examples.
kezdjük.,
enyhe Bevezetés Az exponenciális simításhoz az idősorok előrejelzéséhez Python
fotó: Wolfgang Staudt, néhány jog fenntartva.
bemutató Áttekintés
Ez a bemutató 4 részre oszlik; ezek:
- mi az exponenciális simítás?
- exponenciális simítás típusai
- hogyan konfigurálhatjuk az exponenciális simítást
- exponenciális simítás Pythonban
mi az exponenciális simítás?
Az exponenciális simítás egy idősoros előrejelzési módszer az univariate adatok számára.,
idősoros módszerek, mint például a Box-Jenkins ARIMA metóduscsalád olyan modellt dolgoz ki, ahol az előrejelzés a legutóbbi megfigyelések vagy késések súlyozott lineáris összege.
Az exponenciális simítási előrejelzési módszerek hasonlóak, mivel az előrejelzés a múltbeli megfigyelések súlyozott összege, de a modell kifejezetten exponenciálisan csökkenő súlyt használ a múltbeli megfigyelésekhez.
pontosabban, a múltbeli megfigyeléseket geometriailag csökkenő arányban súlyozzák.,
Az exponenciális simítási módszerekkel előállított előrejelzések a korábbi megfigyelések súlyozott átlagai, a megfigyelések öregedésével exponenciálisan bomló súlyok. Más szóval, minél újabb a megfigyelés, annál nagyobb a kapcsolódó súly.
— 171.oldal, előrejelzés: principles and practice, 2013.
Az exponenciális simítási módszerek társaiknak tekinthetők, és alternatívát jelenthetnek a népszerű Box-Jenkins ARIMA módszerosztályhoz az idősorok előrejelzéséhez.,
együttesen a módszereket néha ETS-modelleknek nevezik, utalva a hiba, a Trend és a szezonalitás kifejezett modellezésére.
az exponenciális simítás típusai
Az exponenciális simítási idősor-előrejelzési módszerek három fő típusa létezik.
egy egyszerű módszer, amely nem feltételez szisztematikus struktúrát, egy olyan kiterjesztést, amely kifejezetten kezeli a trendeket, valamint a legfejlettebb megközelítést, amely támogatja a szezonalitást.,
Single Exponential simítás
Single Exponential simítás, ses Rövid, más néven egyszerű exponenciális simítás, egy idősoros előrejelzési módszer univariate adatok nélkül trend vagy szezonalitás.
egyetlen paramétert igényel, az úgynevezett alpha (a), más néven simítási tényező vagy simítási együttható.
Ez a paraméter szabályozza azt a sebességet, amellyel a megfigyelések hatása a korábbi időpontban exponenciálisan csökken. Az alfa értéke gyakran 0 és 1 között van., A nagy értékek azt jelentik, hogy a modell elsősorban a legutóbbi múltbeli megfigyelésekre figyel, míg a kisebb értékek többet jelentenek a történelem során.
az 1-hez közeli érték gyors tanulást jelez (vagyis csak a legfrissebb értékek befolyásolják az előrejelzéseket), míg a 0-hoz közeli érték lassú tanulást jelez (a múltbeli megfigyelések nagy hatással vannak az előrejelzésekre).
— 89.oldal, Practical Time Series Forecasting with R, 2016.,
Hyperparameters:
- Alpha: simító tényező a szinthez.
kettős exponenciális simítás
a kettős exponenciális simítás az exponenciális simítás kiterjesztése, amely kifejezetten támogatja az univariate idősorok trendjeit.
a szint simító tényezőjének szabályozására szolgáló alfa paraméter mellett további simító tényezőt adunk a béta (b) nevű trendváltozás hatásának bomlásának szabályozásához.,
a módszer olyan trendeket támogat, amelyek különböző módon változnak: adalékanyag és multiplikatív, attól függően, hogy a tendencia lineáris vagy exponenciális.
kettős exponenciális simítás egy additív trend klasszikusan nevezik Holt lineáris trend modell, elemzi a fejlesztő a módszer Charles Holt.
- additív Trend: kettős exponenciális simítás lineáris trenddel.
- Multiplicative Trend: kettős exponenciális simítás exponenciális trenddel.,
hosszabb távú (többlépcsős) előrejelzések esetén a tendencia irreálisan folytatódhat. Mint ilyen, hasznos lehet az idő múlásával tompítani a tendenciát.
A csillapítás azt jelenti, hogy a trend méretének csökkentése a jövőben egyenes vonalra lép (nincs trend).
a Holt lineáris módszere által generált előrejelzések állandó tendenciát (növekvő vagy csökkenő) mutatnak a jövőben., Még szélsőségesebbek az exponenciális trend módszer által generált előrejelzések, amelyeket ez a megfigyelés motivál, olyan paramétert vezettek be, amely a jövőben valamikor” tompítja ” a tendenciát egy lapos vonalra.
— 183.oldal, előrejelzés: principles and practice, 2013.
mint maga a trend modellezése, ugyanazokat az elveket használhatjuk a trend csillapítására, kifejezetten additív vagy multiplikatív módon lineáris vagy exponenciális csillapító hatás esetén. A csillapítás sebességének szabályozására egy Phi (p) csillapítási együtthatót használnak.,
- additív csillapítás: lineárisan tompítsa a trendet.
- multiplikatív csillapítás: exponenciálisan tompítsa a tendenciát.
Hyperparameters:
- Alpha: simító tényező a szinthez.
- Beta: simító tényező a trend.
- Trend Típus: adalékanyag vagy multiplikatív.
- Dampen Típus: additív vagy multiplikatív.
- Phi: csillapítási együttható.
hármas exponenciális simítás
a hármas exponenciális simítás az exponenciális simítás kiterjesztése, amely kifejezetten támogatja a szezonalitást az univariate idősorhoz.,
ezt a módszert néha Holt-Winters exponenciális simításnak nevezik, amelyet a módszer két közreműködőjének neveztek el: Charles Holt és Peter Winters.
az alfa-és béta-simító tényezők mellett egy új paramétert adunk hozzá gamma (g) néven, amely szabályozza a szezonális komponensre gyakorolt hatást.
a trendhez hasonlóan a szezonalitás modellezhető adalékanyagként vagy multiplikatív folyamatként a szezonalitás lineáris vagy exponenciális változásához.
- additív szezonalitás: hármas exponenciális simítás lineáris szezonalitással.,
- multiplikatív szezonalitás: hármas exponenciális simítás exponenciális szezonalitással.
a tripla exponenciális simítás az exponenciális simítás legfejlettebb variációja, konfiguráción keresztül kettős és egy exponenciális simítási modelleket is képes kifejleszteni.
adaptív módszerként a Holt-Winter exponenciális simítása lehetővé teszi a szint, a trend és a szezonalitás mintázatának időbeli változását.
— Page 95, Practical Time Series Forecasting with R, 2016.,
ezenkívül a szezonalitás helyes modellezésének biztosítása érdekében meg kell határozni a szezonális időszak (időszak) időlépéseinek számát. Például, ha a sorozat havi adat volt, a szezonális időszak minden évben megismétlődik, akkor az időszak=12.
Hyperparameters:
- Alpha: simító tényező a szinthez.
- Beta: simító tényező a trend.
- Gamma: a szezonalitás kiegyenlítő tényezője.
- Trend Típus: adalékanyag vagy multiplikatív.
- Dampen Típus: additív vagy multiplikatív.
- Phi: csillapítási együttható.,
- szezonalitás típusa: adalékanyag vagy multiplikatív.
- időszak: Időlépések szezonális időszakban.
az exponenciális simítás beállítása
az összes modell hiperparaméter kifejezetten megadható.
Ez mind a szakértők, mind a kezdők számára kihívást jelenthet.
ehelyett gyakori, hogy numerikus optimalizálással Keressük és finanszírozzuk a simítási együtthatókat (alfa, béta, gamma és phi) a legalacsonyabb hibát eredményező modellhez.,
Az exponenciális simítási módszerben szereplő ismeretlen paraméterek értékeinek robusztusabb és objektívebb módja a megfigyelt adatokból történő becslés. bármely exponenciális simítási módszer ismeretlen paraméterei és kezdeti értékei az SSE minimalizálásával becsülhetők meg .
— 177.oldal, előrejelzés: principles and practice, 2013.,
A paraméterek, amelyek meghatározzák a típusú változás a trend a szezonális, például időjárás vannak additív vagy multiplikatív e kell csillapított, meg kell határozni kifejezetten.
exponenciális simítás Python-ban
Ez a szakasz az exponenciális simítás végrehajtását vizsgálja Python-ban.
Az exponenciális simítás implementációi a Python Statsmodels Python könyvtárban találhatók.,
A megvalósítások alapul a módszer leírása, a Rob Hyndman George Athanasopoulos’ kiváló könyv “- Előrejelzés: Elvek Gyakorlatban” 2013. a R implementációk az “előrejelzés” csomag.
Single exponenciális simítás
Single exponenciális simítás vagy egyszerű simítás lehet végrehajtani Python keresztül Simpleexpoothing Statsmodels osztály.
először a SimpleExpSmoothing osztály egy példányát kell instantálni, majd átadni a képzési adatokat., A fit () függvényt ezután a fit konfiguráció biztosításának nevezik, különös tekintettel a smoothing_level nevű alfa értékre. Ha ez nincs megadva, vagy nincs beállítva, a modell automatikusan optimalizálja az értéket.
Ez a fit () függvény a HoltWintersResults osztály egy példányát adja vissza, amely tartalmazza a tanult együtthatókat. Az előrejelzés() vagy a predict() függvény az eredmény objektum hívható, hogy egy előrejelzést.,
például:
kettős és hármas exponenciális simítás
egy -, kettős és hármas exponenciális simítás implementálható Python-ban az ExponentialSmoothing Statsmodels osztály használatával.
először az Exponencialsmoothing osztály egy példányát kell példányosítani, megadva mind a képzési adatokat, mind a modell néhány konfigurációját.
konkrétan meg kell adnia a következő konfigurációs paramétereket:
- trend: a trendkomponens típusa, mint adalékanyag “hozzáadása” vagy multiplikatív “mul”. Modellezés a trend le lehet tiltani beállításával, hogy nincs.,
- csillapított: függetlenül attól, hogy a trendkomponenst csillapítani kell-e, Igaz vagy hamis.
- Szezonális: a szezonális összetevő típusa, adalékanyagként vagy multiplikatívként “add” vagy “mul”. A szezonális komponens modellezése letiltható úgy, hogy nincs.
- seasonal_periods: az időlépések száma egy szezonális időszakban, például 12 hónap egy éves szezonális struktúrában (bővebben itt).
a modell ezután a fit() funkció hívásával illeszthető a képzési adatokba.,
Ez a funkció lehetővé teszi az exponenciális simítási modell simítási együtthatóinak megadását vagy optimalizálását. Alapértelmezés szerint optimalizálva vannak (pl. optimalizált=igaz). Ezek az együtthatók a következők:
- smoothing_level (alpha): a szint simítási együtthatója.
- smoothing_slope (beta): a trend simítási együtthatója.
- smoothing_seasonal (gamma): a szezonális komponens simítási együtthatója.
- damping_slope (phi): a csillapított trend együtthatója.,
továbbá, a fit funkció végezhet alapvető adatok előkészítése előtt modellezés; konkrétan:
- use_boxcox: e vagy sem, hogy végre egy power transzformáció a sorozat (True/False), vagy adja meg a lambda a transzformáció.
a fit() függvény visszaadja a HoltWintersResults osztály egy példányát, amely tartalmazza a tanult együtthatókat. Az előrejelzés() vagy a predict() függvény az eredmény objektum hívható, hogy egy előrejelzést.
további olvasás
Ez a szakasz több erőforrást biztosít a témában, ha mélyebbre szeretne menni.,
Tutorials
- hogyan rács keresés hármas exponenciális simítás idősorok előrejelzés Python
Könyvek
- 7. fejezet exponenciális simítás, előrejelzés: principles and practice, 2013.
- 6. 4 pont. Bevezetés A Time Series Analysis, Engineering Statistics Handbook, 2012.
- gyakorlati idősorok előrejelzése R-vel, 2016.
API
- Statsmodels idősorok elemzése tsa
- statsmodels.tsa.holtwinters.SimpleExpSmoothing API
- statsmodels.tsa.holtwinters.ExponentialSmoothing API
- statsmodels.,tsa.holtwinters.HoltWintersResults API
- előrejelzés: előrejelzési funkciók idősorok és lineáris modellek r csomag
cikkek
- exponenciális simítás Wikipedia
összefoglaló
ebben a bemutatóban felfedezte az exponenciális simítási módszert az univariate idősorok előrejelzéséhez.
konkrétan megtudta:
- mi az exponenciális simítás, és miben különbözik a többi előrejelzési módszertől.
- Az exponenciális simítás három fő típusa és azok konfigurálásának módja.,
- hogyan lehet exponenciális simítást végrehajtani Python-ban.
van bármilyen kérdése?
tegye fel kérdéseit az alábbi megjegyzésekben, és mindent megteszek, hogy válaszoljak.
idősoros előrejelzéseket szeretne kidolgozni a Python segítségével?
saját előrejelzések kidolgozása percben
…,csak néhány sor python kód
fedezze fel, hogyan az én új Ebook:
Bevezetés idősor előrejelzés Python
Ez magában foglalja az önálló tanulás útmutatók és a végpontok közötti projektek témákban, mint: betöltése adatok, vizualizáció, modellezés, algoritmus tuning, és még sok más…
végül hozza az idősorok előrejelzését a
saját projektjeihez
hagyja ki az akadémikusokat. Csak Eredmények.
nézze meg, mi van benne