Wygładzenie wykładnicze

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Wygładzanie wykładnicze – metoda obróbki szeregu czasowego zmniejszająca jego wariancję za pomocą ważonej średniej ruchomej z przeszłych wartości, o wagach malejących wykładniczo wraz z odległością w czasie. Stosowana do prostego usuwania szumu, lub wizualizacji różnych danych. Jest również przydatna w prognozowaniu szeregów czasowych o niewielkim stosunku sygnału do szumu, szczególnie niemających wyraźnego trendu i wahań sezonowych.

Definicja[edytuj | edytuj kod]

Proste wygładzanie wykładnicze[edytuj | edytuj kod]

(Proste) Wygładzanie wykładnicze szeregu (x_i) można zdefiniować matematycznie, jako nowy szereg zdefiniowany przez kombinację liniową wartości

s_t = (1-\alpha)^{t-1} x_0 + \alpha \sum_{i=1}^{t-1} (1-\alpha)^{i-1} x_{t-i}

Ponieważ wagi tej kombinacji maleją wykładniczo, stąd bierze się nazwa. Odrębne traktowanie x_o związane jest z tym że mamy skończoną ilość przeszłych wartości w szeregu oraz tym iż inaczej suma wag nie sumowała by się do jedności. Inną motywacją jest możliwość zaimplementowania szybkiego algorytmu do liczenia tej średniej.

Okazuje się, że znając wartość s_t, łatwo wyliczć s_{t+1} rekurencyjnie, co jest podstawą inkrementalnego algorytmy wyliczania wygładzania wykładniczego.

s_{t+1} =  (1-\alpha)^{t} x_0 + \alpha \sum_{i=1}^{t} (1-\alpha)^{i-1} x_{t+1-i}
= (1-\alpha)^{t} x_0  + \alpha x_{t-1} + \alpha \sum_{i=2}^{t} (1-\alpha)^{i-1} x_{t+1-i}
= (1-\alpha)\left[ (1-\alpha)^{t-1} x_0  + \alpha \sum_{i=2}^{t} (1-\alpha)^{i-2} x_{t+1-i} \right] + \alpha x_{t-1}

Przesuwając teraz wskaźnik i w sumie, otrzymujemy

s_t = (1-\alpha) \left[ (1-\alpha)^{t-1} x_0 + \alpha \sum_{i=1}^{t-1} (1-\alpha)^{i-1} x_{t-i} \right] + \alpha x_{t-1}
= (1-\alpha) s_{t-1} + \alpha x_{t-1}
s_1 = x_1

Dokładne wygładzanie wykładnicze[edytuj | edytuj kod]

Można również zdefiniować dokładne (w przeciwieństwie do prostego) wygładzanie wykładnicze:

s_{t+1} = \frac{1}{N_t} \sum_{i=0}^{t} \beta^i x_{t-i}

gdzie N_t to czynnik normalizacyjny, który dla 0 < \beta < 1, wynosi (zobacz szereg geometryczny)

N_t = \sum_{i=0}^{t} \beta^i = \frac{1 - \beta^{t+1}}{1-\beta}

Również i tutaj można utworzyć rekurencje określającą s_{t+1}, na podstawie s_t.

Wprowadza się do tego celu dodatkowe zmienne i szeregi

y_0 = 0
y_{t+1} = \sum_{i=0}^{t} \beta^i x_{t-i} = x_{t} + \beta y_t
a_0 = \beta
a_{t+1} = \beta a_t
s_{t+1} = \frac{1-\beta}{1 - a_t} y_{t+1}

W praktyce a_t szybko zbiega do zera, i ostatnie wyrażenie jest wtedy równoważne z prostym wygładzaniem wykładniczym (z \beta = 1-\alpha). Jednak ponieważ wzory są troszeczkę bardziej skomplikowane, oraz mogą być niestabilne numerycznie w praktyce różnica jest niewidoczna dla t większych, stosuje się prostą i szybką wersje. Różnice pomiędzy obiema wersjami wygładzania można dostrzec w początkowym przebiegu obu krzywych na przykładowym wykresie poniżej.


Wygladzanie wykladnicze.svg

Prognozowanie[edytuj | edytuj kod]

Przy pomocy wygładzania wykładniczego i jego modyfikacji można ekstrapolować trend (wygładzanie usuwa szumy i inne efekty, a pozostawia jedynie sygnał), co jest przydatne do prognozowania (predykcji) zachowań szeregu w bliskiej przyszłości.

Model Browna[edytuj | edytuj kod]

Metoda Browna (najprostsza wersja) należy do metod wygładzania wykładniczego; stosowana jest najczęściej w przypadku szeregu bez trendu; szereg nie wykazuje tendencji rozwojowej, a wahania jego wartości wynikają z działania czynników losowych. Metoda polega na tym, że szereg czasowy zmiennej prognozowanej wygładza się za pomocą średniej ruchomej, przy czym wagi określone są według prawa wykładniczego.

Reguła predykcji w postaci rekurencyjnej:
dla pierwszego momentu czasowego:

Y^*_1=Y_0\;

dla następnych:

Y^*_t=\alpha Y_{t-1}+(1-\alpha)Y^*_{t-1}\;

gdzie:

  • Y^*_t\; – wartości prognozy dla danej wartości parametru wygładzania \alpha;
  • Y_t\; – wartości szeregu;
  • \alpha\; – parametr wyrównywania wykładniczego (współczynnik wygładzania) z przedziału (0,1].

Przykład:

Y^*_1=Y_0\;
Y^*_2=\alpha Y_1+(1-\alpha)Y^*_1\;
Y^*_3=\alpha Y_2+(1-\alpha)Y^*_2\;

Jeśli wyznaczona prognoza na okres t-1 była w porównaniu z rzeczywistą wartością zmiennej prognozowanej Y_{t-1} zaniżona, to prognoza na okres t zwiększa się ( korekta w górę), i odwrotnie: jeśli wyznaczona prognoza na okres t-1 była w porównaniu z rzeczywistą wartością zmiennej prognozowanej Y_{t-1} zawyżona, to prognoza konstruowana na okres t zmniejsza się (korekta w dół).

Ustalenie parametru \alpha\in (0,1] odbywa się metodą „prób i błędów”, przyjmując za kryterium, np. wartość średniego błędu prognozy ex ante. Parametr α nazywany jest parametrem wygładzania. Jeżeli wartość parametru jest zbliżona do wartości 1, to oznacza to, że budowana prognoza będzie uwzględniała w wysokim stopniu błędy ex post prognoz poprzednich. I odwrotnie: jeżeli wartość α jest bliska 0, to prognoza w bardzo małym stopniu uwzględnia błędy poprzednich prognoz. Brown uważa, że parametr α wynosi:

\alpha = \frac{2}{n+1}

gdzie

n\; – liczba obserwacji.

Jako wartość Y^*_1 przyjmuje się najczęściej średnia arytmetyczną wartości zmiennej prognozowanej pierwszych trzech wartości tej zmiennej.

Metoda prostego wyrównywania wykładniczego może służyć do prognozowania tylko na jeden okres naprzód, ponieważ wszystkie następne prognozowane wartości byłyby sobie równe.

Model liniowy Holta[edytuj | edytuj kod]


Model Holta stosuje się do wygładzania szeregów czasowych, w których występują wahania przypadkowe i tendencja rozwojowa. Równania modelu:

F_{t - 1}  = \alpha y_{t - 1}  + \left( {1 - \alpha } \right)\left( {F_{t - 2}  + S_{t - 2} } \right)

S_{t - 1}  = \beta \left( {F_{t - 1}  - F_{t - 2} } \right) + \left( {1 - \beta } \right)S_{t - 2}

  • F_{t-1}\, - wygładzona wartość zmiennej prognozowanej na moment t-1
  • S_{t-1}\, - wygładzona wartość przyrostu trendu na moment t-1
  • \alpha, \beta\, - parametry modelu o wartościach z przedziału [0,1]

Równanie prognozy na okres t > n\,:

y_t^*  = F_n  + \left( {t - n} \right)S_n ,t > n

  • y^*_t\, - prognoza zmiennej Y na moment t
  • F_n\, - wygładzona wartość zmiennej prognozowanej na moment n
  • S_n\, - ocena przyrostu trendu na moment n
  • n\, - liczba wyrazów w szeregu czasowym

Wartości początkowe F_1\, i S_1\, można uzyskać przyjmując za F_1\, pierwszą wartość prognozowanej zmiennej y_1\,, zaś za S_1\, różnicę y_2-y_1\,. Innym podejściem jest przyjęcie za F_1\, wyrazu wolnego liniowej funkcji trendu, a za S_1\, współczynnika kierunkowego tej samej funkcji.

W modelu Holta pozostaje jeszcze określenie parametrów \alpha\, oraz \beta\, - dokonuje się tego poprzez serię prób o różnych kombinacjach \alpha\, i \beta\, i wyborze tych parametrów, które dadzą najmniejszy błąd prognoz wygasłych, prognozy wygasłe obliczamy ze wzoru:

y_t^*  = F_{t - 1}  + S_{t - 1} ,2 \le t \le n

Model Wintersa[edytuj | edytuj kod]


Model Wintersa można zastosować dla szeregów czasowych z tendencją rozwojową, wahaniami sezonowymi i przypadkowymi.

Addytywna wersja modelu:

F_{t - 1}  = \alpha \left( {y_{t - 1}  - C_{t - 1 - r} } \right) + \left( {1 - \alpha } \right)\left( {F_{t - 2}  + S_{t - 2} } \right)

S_{t - 1}  = \beta \left( {F_{t - 1}  - F_{t - 2} } \right) + \left( {1 - \beta } \right)S_{t - 2}

C_{t - 1}  = \gamma \left( {y_{t - 1}  - F_{t - 1} } \right) + \left( {1 - \gamma } \right)C_{t - 1 - r}

Wersja multiplikatywna:

F_{t - 1}  = \alpha {{y_{t - 1} } \over {C_{t - 1 - r} }} + \left( {1 - \alpha } \right)\left( {F_{t - 2}  + S_{t - 2} } \right)

S_{t - 1}  = \beta \left( {F_{t - 1}  - F_{t - 2} } \right) + \left( {1 - \beta } \right)S_{t - 2}

C_{t - 1}  = \gamma {{y_{t - 1} } \over {F_{t - 1} }} + (1 - \gamma )C_{t - 1 - r}
  • F_{t-1}\, - wygładzona wartość zmiennej prognozowanej na moment t-1\, po eliminacji wahań sezonowych
  • S_{t-1}\, - ocena przyrostu trendu na moment t-1\,
  • C_{t-1}\, - ocena wskaźnika sezonowości na moment t-1\,
  • r\, - liczba faz
  • \alpha,\beta,\gamma\, - parametry modelu o wartościach z przedziału [0,1]

Prognozę na moment t > n\, wyznacza się ze wzorów:

  • dla wersji addytywnej:
    • y_t^*  = F_n  + S_n \left( {t - n} \right) + C_{t - r}
  • dla wersji multiplikatywnej:
    • y_t^*  = \left[ {F_n  + S_n \left( {t - n} \right)} \right]C_{t - r}

Parametry \alpha, \beta, \gamma\, wybiera się analogicznie jak w modelu Holta minimalizując średni kwadratowy błąd prognoz wygasłych lub wybiera się wartości bliskie 1 gdy składowe szeregu czasowego zmieniają się szybko, albo bliskie 0 gdy składowe szeregu nie wykazują szybkich zmian.

Za F_1, S_1\, i C_1,...,C_r\, przyjmuje się:

  • y_1\, lub średnią z wartości zmiennej w pierwszym cyklu
  • y_2-y_1\, lub różnicę średnich wartości zmiennej wyznaczonych dla drugiego i pierwszego cyklu wyznaczoną na podstawie szeregu średnią różnic (model addytywny) lub ilorazów (model multiplikatywny), odpowiadających tej samej fazie cyklu sezonowego, wartości zmiennej prognozowanej oraz wygładzonych wartości trendu.