Ostatnia aktualizacja 12 kwietnia 2020 r.
wygładzanie wykładnicze jest metodą prognozowania szeregów czasowych dla danych jednostkowych, które można rozszerzyć o dane z tendencją systematyczną lub komponentem sezonowym.
jest to potężna metoda prognozowania, która może być stosowana jako alternatywa dla popularnej rodziny metod Box-Jenkins ARIMA.
w tym samouczku odkryjesz wykładniczą metodę wygładzania dla prognozowania jednowymiarowych szeregów czasowych.,
Po ukończeniu tego samouczka dowiesz się:
- czym jest wygładzanie wykładnicze i czym różni się od innych metod prognozowania.
- trzy główne typy wygładzania wykładniczego i jak je skonfigurować.
- jak zaimplementować wygładzanie wykładnicze w Pythonie.
Rozpocznij swój projekt od mojej nowej książki Prognozowanie szeregów czasowych z Pythonem, w tym samouczków krok po kroku i plików kodu źródłowego Pythona dla wszystkich przykładów.
zaczynajmy.,
a Gentle Introduction to Exponential Smoothing for Time Series Forecasting in Python
Photo by Wolfgang Staudt, some rights reserved.
przegląd tutoriala
ten tutorial jest podzielony na 4 części; są to:
- co to jest wygładzanie wykładnicze?
- rodzaje wygładzania wykładniczego
- Jak skonfigurować wygładzanie wykładnicze
- wygładzanie wykładnicze w Pythonie
czym jest wygładzanie wykładnicze?
wygładzanie wykładnicze jest metodą prognozowania szeregów czasowych dla danych jednowymiarowych.,
metody szeregów czasowych, takie jak rodzina metod Box-Jenkins Arima, rozwijają model, w którym PREDYKCJA jest ważoną sumą liniową ostatnich obserwacji lub opóźnień.
Metody prognozowania wygładzania wykładniczego są podobne w tym, że PREDYKCJA jest ważoną sumą wcześniejszych obserwacji, ale model wyraźnie wykorzystuje wykładniczo malejącą wagę dla wcześniejszych obserwacji.
,
prognozy sporządzone przy użyciu metod wygładzania wykładniczego są średnimi ważonymi wcześniejszych obserwacji, z wagami rozkładającymi się wykładniczo w miarę starzenia się obserwacji. Innymi słowy, im nowsza obserwacja, tym większa związana z nią waga.
— strona 171,
metody wygładzania wykładniczego mogą być traktowane jako rówieśniki i alternatywa dla popularnej klasy metod prognozowania szeregów czasowych typu Box-Jenkins Arima.,
łącznie metody są czasami określane jako modele ETS, odnoszące się do wyraźnego modelowania błędów, trendów i sezonowości.
rodzaje wygładzania wykładniczego
istnieją trzy główne rodzaje metod prognozowania szeregów czasowych wygładzania wykładniczego.
prosta metoda, która nie zakłada systematycznej struktury, rozszerzenie, które wyraźnie obsługuje trendy i najbardziej zaawansowane podejście, które dodaje wsparcie dla sezonowości.,
pojedyncze wygładzanie wykładnicze
pojedyncze wygładzanie wykładnicze, w skrócie SES, zwane również prostym wygładzaniem wykładniczym, jest metodą prognozowania szeregów czasowych dla danych jednostkowych bez trendu lub sezonowości.
wymaga pojedynczego parametru, zwanego alfa (a), zwanego również współczynnikiem wygładzania lub współczynnikiem wygładzania.
parametr ten kontroluje szybkość, z jaką wpływ obserwacji w poprzednich krokach czasu ulega rozkładowi wykładniczo. Alpha jest często ustawiana na wartość od 0 do 1., Duże wartości oznaczają, że model zwraca uwagę głównie na najnowsze obserwacje z przeszłości, podczas gdy mniejsze wartości oznaczają, że więcej historii jest brane pod uwagę przy przewidywaniu.
wartość bliska 1 oznacza szybkie uczenie się (to znaczy, tylko najnowsze wartości wpływają na prognozy), podczas gdy wartość bliska 0 oznacza powolne uczenie się (wcześniejsze obserwacje mają duży wpływ na prognozy).
— strona 89, praktyczne Prognozowanie szeregów czasowych z R, 2016.,
Hiperparametry:
- Alpha: współczynnik wygładzania poziomu.
Podwójne wygładzanie wykładnicze
Podwójne wygładzanie wykładnicze jest rozszerzeniem do wygładzania wykładniczego, które wyraźnie dodaje obsługę trendów w jednowymiarowych szeregach czasowych.
oprócz parametru alfa do sterowania współczynnikiem wygładzania poziomu dodaje się dodatkowy współczynnik wygładzania, aby kontrolować zanik wpływu zmiany trendu o nazwie beta (b).,
metoda obsługuje trendy, które zmieniają się na różne sposoby: addytywny i mnożnikowy, w zależności od tego, czy trend jest odpowiednio liniowy czy wykładniczy.
Podwójne wygładzanie wykładnicze z addytywnym trendem jest klasycznie określane jako liniowy model trendu Holta, nazwany na cześć twórcy metody Charlesa Holta.
- addytywny Trend: Podwójne wygładzanie wykładnicze z trendem liniowym.
- Trend mnożnikowy: Podwójne wygładzanie wykładnicze z trendem wykładniczym.,
w przypadku prognoz o dłuższym zasięgu (wieloetapowych) trend może być kontynuowany nierealistycznie. Jako takie, może być przydatne do tłumienia trendu w czasie.
tłumienie oznacza zmniejszenie wielkości trendu w czasie przyszłym do linii prostej (brak trendu).
prognozy generowane metodą liniową Holta wykazują stały trend (rosnący lub malejący) w przyszłości., Jeszcze bardziej ekstremalne są prognozy generowane przez wykładniczą metodę trendu motywowany tą obserwacją wprowadził parametr, który” tłumi ” trend do linii płaskiej jakiś czas w przyszłości.
— strona 183, Prognosting: principles and practice, 2013.
podobnie jak w przypadku modelowania samego trendu, możemy użyć tych samych zasad w tłumieniu trendu, szczególnie addytywnie lub mnożnie dla liniowego lub wykładniczego efektu tłumienia. Współczynnik tłumienia Phi (p) jest używany do kontroli szybkości tłumienia.,
- tłumienie addytywne: tłumienie trendu liniowo.
- tłumienie mnożnikowe: tłumienie trendu wykładniczo.
Hiperparametry:
- Alpha: współczynnik wygładzania poziomu.
- Beta: współczynnik wygładzania trendu.
- Typ trendu: addytywny lub multiplikatywny.
- Typ tłumika: addytywny lub multiplikatywny.
- Phi: współczynnik tłumienia.
potrójne wygładzanie wykładnicze
potrójne wygładzanie wykładnicze jest rozszerzeniem wygładzania wykładniczego, które wyraźnie dodaje obsługę sezonowości do jednowymiarowych szeregów czasowych.,
metoda ta jest czasami nazywana wygładzaniem wykładniczym Holta-Wintersa, nazwanym na cześć dwóch współtwórców metody: Charlesa Holta i Petera Wintersa.
oprócz współczynników wygładzania alfa i beta dodaje się nowy parametr o nazwie gamma (g), który kontroluje wpływ na składnik sezonowy.
podobnie jak w przypadku trendu, sezonowość może być modelowana jako proces addytywny lub mnożnikowy dla liniowej lub wykładniczej zmiany sezonowości.
- sezonowość addytywna: potrójne wygładzanie wykładnicze z sezonowością liniową.,
- sezonowość multiplikatywna: potrójne wygładzanie wykładnicze z sezonowością wykładniczą.
potrójne wygładzanie wykładnicze jest najbardziej zaawansowaną odmianą wygładzania wykładniczego i dzięki konfiguracji może również tworzyć podwójne i pojedyncze modele wygładzania wykładniczego.
będąc metodą adaptacyjną, wykładnicze wygładzanie Holt-Winter pozwala na zmianę poziomu, trendu i wzorców sezonowości w czasie.
— strona 95, praktyczne Prognozowanie szeregów czasowych z R, 2016.,
dodatkowo, aby zapewnić poprawne modelowanie sezonowości, należy podać liczbę kroków czasowych w danym okresie (okresie) sezonowym. Na przykład, jeśli seria była danymi miesięcznymi, a okres sezonowy powtarzał się każdego roku, To Period=12.
Hiperparametry:
- Alpha: współczynnik wygładzania poziomu.
- Beta: współczynnik wygładzania trendu.
- Gamma: współczynnik wygładzania dla sezonowości.
- Typ trendu: addytywny lub multiplikatywny.
- Typ tłumika: addytywny lub multiplikatywny.
- Phi: współczynnik tłumienia.,
- Typ sezonowości: addytywny lub multiplikatywny.
- Period: kroki czasowe w okresie sezonowym.
jak skonfigurować wygładzanie wykładnicze
wszystkie hiperparametry modelu mogą być jawnie określone.
może to być trudne zarówno dla ekspertów,jak i początkujących.
zamiast tego, powszechnie stosuje się optymalizację numeryczną do wyszukiwania i finansowania współczynników wygładzania (alfa, beta, gamma i phi) dla modelu, które powodują najniższy błąd.,
bardziej solidnym i obiektywnym sposobem uzyskania wartości dla nieznanych parametrów zawartych w dowolnej metodzie wygładzania wykładniczego jest oszacowanie ich na podstawie obserwowanych danych. nieznane parametry i wartości początkowe dla dowolnej metody wygładzania wykładniczego można oszacować minimalizując SSE .
— p > – strona 177, ,
parametry, które określają rodzaj zmiany trendu i sezonowości, takie jak pogoda są addytywne lub multiplikatywne i czy powinny być tłumione, muszą być wyraźnie określone.
wygładzanie wykładnicze w Pythonie
w tej sekcji opisano, jak zaimplementować wygładzanie wykładnicze w Pythonie.
implementacje wygładzania wykładniczego w Pythonie są dostępne w Bibliotece Pythona Statsmodels.,
implementacje są oparte na opisie metody w doskonałej książce Roba Hyndmana i George' a Athanasopoulosa „Forecasting: Principles and Practice” z 2013 roku oraz ich implementacjach R w pakiecie „forecast”.
pojedyncze wygładzanie wykładnicze
pojedyncze wygładzanie wykładnicze lub proste wygładzanie może być zaimplementowane w Pythonie za pomocą klasy SimpleExpSmoothing Statsmodels.
najpierw należy utworzyć instancję klasy SimpleExpSmoothing i przekazać dane treningowe., Funkcja fit() jest następnie wywoływana dostarczając konfigurację fit, w szczególności wartość alfa o nazwie smoothing_level. Jeśli opcja ta nie jest dostępna lub jest ustawiona na None, model automatycznie zoptymalizuje wartość.
funkcja fit() zwraca instancję klasy HoltWintersResults, która zawiera wyuczone współczynniki. Funkcja forecast () lub predict () na obiekcie wynikowym może być wywołana w celu sporządzenia prognozy.,
na przykład:
podwójne i potrójne wygładzanie wykładnicze
pojedyncze, podwójne i potrójne wygładzanie wykładnicze może być zaimplementowane w Pythonie przy użyciu klasy ExponentialSmoothing Statsmodels.
najpierw należy utworzyć instancję klasy ExponentialSmoothing, określając zarówno dane treningowe, jak i pewną konfigurację modelu.
w szczególności należy podać następujące parametry konfiguracyjne:
- trend: typ komponentu trendu, jako „add” dla addytywnego lub „mul” Dla multiplikatywnego. Modelowanie trendu można wyłączyć, ustawiając go na brak.,
- tłumione: czy komponent trendu ma być tłumiony, czy nie, prawda czy fałsz.
- sezonowy: typ składnika sezonowego, jako ” add „dla dodatku lub” mul ” Dla mnożenia. Modelowanie komponentu sezonowego można wyłączyć, ustawiając go na None.
- seasonal_periods: liczba kroków czasowych w okresie sezonowym, np. 12 na 12 miesięcy w rocznej strukturze sezonowej (więcej tutaj).
model może zostać dopasowany do danych treningowych przez wywołanie funkcji fit ().,
Ta funkcja pozwala określić współczynniki wygładzania wykładniczego modelu wygładzania lub je zoptymalizować. Domyślnie są one zoptymalizowane(np. optimized = True). Współczynniki te obejmują:
- smoothing_level (alpha): współczynnik wygładzania dla poziomu.
- smoothing_slope( beta): współczynnik wygładzania trendu.
- smoothing_seasonal( gamma): współczynnik wygładzania dla składnika sezonowego.
- damping_slope (phi): współczynnik tłumienia trendu.,
dodatkowo funkcja fit może wykonać podstawowe przygotowanie danych przed modelowaniem; w szczególności:
- use_boxcox: czy wykonać transformację mocy serii (prawda / fałsz) lub określić lambda dla tej transformacji.
funkcja fit() zwróci instancję klasy HoltWintersResults, która zawiera wyuczone współczynniki. Funkcja forecast () lub predict () na obiekcie wynikowym może być wywołana w celu sporządzenia prognozy.
Czytaj dalej
Ta sekcja zawiera więcej zasobów na ten temat, Jeśli Chcesz wejść głębiej.,
samouczki
- Jak wyszukiwać w sieci potrójne wygładzanie wykładnicze dla prognozowania szeregów czasowych w Pythonie
Książki
- Rozdział 7 wygładzanie wykładnicze, Prognozowanie: zasady i praktyka, 2013.
- sekcja 6.4. Introduction to Time Series Analysis, Engineering Statistics Handbook, 2012.
- praktyczne Prognozowanie szeregów czasowych z R, 2016.
API
- Statsmodels Analiza szeregów czasowych tsa
- statsmodels.tsa.holtwinters.SimpleExpSmoothing API
- statsmodels.tsa.holtwinters.ExponentialSmoothing API
- statsmodels.,tsa.holtwinters.HoltWintersResults API
- prognoza: funkcje prognozowania dla szeregów czasowych i modeli liniowych pakiet R
Artykuły
- wykładnicze wygładzanie na Wikipedii
podsumowanie
w tym samouczku odkryłeś wykładniczą metodę wygładzania dla jednoargumentowego prognozowania szeregów czasowych.
w szczególności nauczyłeś się:
- czym jest wygładzanie wykładnicze i czym różni się od innych metod prognozowania.
- trzy główne typy wygładzania wykładniczego i jak je skonfigurować.,
- jak zaimplementować wygładzanie wykładnicze w Pythonie.
masz jakieś pytania?
Zadaj swoje pytania w komentarzach poniżej, a ja Dołożę wszelkich starań, aby odpowiedzieć.
chcesz opracować prognozy szeregów czasowych za pomocą Pythona?
opracuj własne prognozy w kilka minut
…,z zaledwie kilku linijek kodu Pythona
Dowiedz się, jak w moim nowym ebooku:
Wprowadzenie do prognozowania szeregów czasowych w Pythonie
obejmuje samouczki i kompleksowe projekty na tematy takie jak: ładowanie danych, wizualizacja, modelowanie, strojenie algorytmów i wiele więcej…
w końcu Przynieś Prognozowanie szeregów czasowych do
własnych projektów
Tylko Wyniki.
Zobacz co jest w środku