Download - Michał Kowalczykiewicz

Transcript
Page 1: Michał Kowalczykiewicz

Michał Kowalczykiewicz

Time series forecasting using a hybrid ARIMA and neural network model

(na podstawie pracy z Neurocomputing 50 (2003) 159 – 175,

autorstwa G. Peter Zhang)

Page 2: Michał Kowalczykiewicz

Szereg czasowy

Szereg czasowy to proces stochastyczny, którego dziedziną jest czas; to zbiór informacji uporządkowanych w czasie, których pomiary wykonywane są z pewnym krokiem czasowym

Analiza szeregów czasowych ma dwa główne cele: wykrywanie natury zjawiska reprezentowanego przez

sekwencję obserwacji prognozowanie (przewidywanie przyszłych wartości

szeregu czasowego)

Page 3: Michał Kowalczykiewicz

Analiza szeregów

Modele pure autoregressive (AR) pure moving avarage (MA) autoregressive integrated moving average (ARIMA) bilinear model threshold autoregressive (TAR) autoregressive conditional heteroscedastic (ARCH) artificial neural network (ANN)

Page 4: Michał Kowalczykiewicz

Analiza szeregów

Modele pure autoregressive (AR) pure moving avarage (MA) autoregressive integrated moving average (ARIMA) bilinear model threshold autoregressive (TAR) autoregressive conditional heteroscedastic (ARCH) artificial neural network (ANN)

Page 5: Michał Kowalczykiewicz

ARIMA

Jest metodą statystyczną służącą do analizowania szeregów czasowych, o liniowych zależnościach między danymi.

Autorzy Box i Jenkins, 1976

Page 6: Michał Kowalczykiewicz

ARIMA

Model: yt = Ө0 + Ф1yt-1 + Ф2yt-2 . . . + Фpyt-p +

єt - Ө1єt-1 - Ө2єt-2 - . . . - Өqєt-q

yt - wartość w czasie t

єt - losowy błąd w czasie t

Фi (i = 1, 2, . . ., p), Өi (j = 0, 1, . . ., q) - parametry modelu

p, q - porządek modelu

єt - niezależne, ze średnią zero i stałą wariancją σ2

Page 7: Michał Kowalczykiewicz

ARIMA

Budowanie modelu za pomocą metody Boy - Jenkins’a (1976)

Algorytm FAZA 1 : identyfikacja modelu FAZA 2 : estymacja parametrów FAZA 3 : walidacja

Page 8: Michał Kowalczykiewicz

ARIMA - identyfikacja modelu

W tej fazie należy ustalić (zidentyfikować) liczbę i typ parametrów modelu ARIMA, czyli określić wartości parametrów p i q.

Page 9: Michał Kowalczykiewicz

ARIMA - identyfikacja modelu

W tej fazie należy ustalić (zidentyfikować) liczbę i typ parametrów modelu ARIMA, czyli określić wartości parametrów p i q.

Korzysta się z: autokorelogramu (ACF) autokorelogramu cząstkowego (PACF)

Page 10: Michał Kowalczykiewicz

ARIMA - uwagi

Wymaga się, by wejściowy szereg dla tej fazy był stacjonarny, to znaczy, powinien on mieć stałą w czasie średnią, wariancję i autokorelację. Dlatego zazwyczaj szereg wymaga różnicowania aż do osiągnięcia stacjonarności

różnicowanie: yt = yt - yt-1

Page 11: Michał Kowalczykiewicz

ARIMA - estymacja parametrów

Polega na wyznaczeniu wartości parametrów Фi (i = 1, 2, . . ., p), Өi (j = 0, 1, . . ., q) dla których otrzymujemy maksymalną wiarygodność (prawdopodobieństwo) otrzymania właśnie obserwowanego szeregu. Aby mierzony błąd był minimalny

Page 12: Michał Kowalczykiewicz

ARIMA - estymacja parametrów

Polega na wyznaczeniu wartości parametrów Фi (i = 1, 2, . . ., p), Өi (j = 0, 1, . . ., q) dla których otrzymujemy maksymalną wiarygodność (prawdopodobieństwo) otrzymania właśnie obserwowanego szeregu. Aby mierzony błąd był minimalny

W praktyce wymaga to obliczenia (warunkowych) sum kwadratów reszt przy zadanych parametrach

Page 13: Michał Kowalczykiewicz

ARIMA - walidacja

W ostatniej fazie oceniamy trafność naszego modelu. Jeśli model zawiera wiele parametrów i\lub wyniki nas nie zadowalają

Page 14: Michał Kowalczykiewicz

ARIMA - walidacja

W ostatniej fazie oceniamy trafność naszego modelu. Jeśli model zawiera wiele parametrów i\lub wyniki nas nie zadowalają

możemy próbować powtórnie z innymi wartościami początkowymi parametrów (czyli wracamy do FAZA 1).

Page 15: Michał Kowalczykiewicz

ANN

Jest ogólnym modelem potrafiącym wykrywać nieliniowe zależnościach między danymi, w szeregów czasowych

Page 16: Michał Kowalczykiewicz

ANN

Najczęściej używaną siecią w tym zagadnieniu jest a sieć GLM

zależność między wyjściem yt , a wejściam

(yt-1, yt-2, . . ., yt-p), jest następująca:

yt = α0 + Σj<=q αjg(Σ i<=p βijyt-i) + єt

αj (j = 0, 1, . . ., q), βij (i = 0, 1, . . ., p; j = 1, 2, . . ., q) - wagi p - liczba wejść q - liczba neuronów w warstwie ukrytej

Page 17: Michał Kowalczykiewicz

ANN

Jako funkcję aktywacji środkowej warstwy przyjmuję się funkcje logistic:

g(x) = 1 / (1 + exp(-x))

liczba wejść sieci (p) i liczba neuronów wewnętrznych (q) są dobierane eksperymentalnie.

Page 18: Michał Kowalczykiewicz

Hybrid

Dla danych o których nie wiemy, czy są związki w nich występujące są liniowe czy, też nie żadna z wymienionych metoda nie jest odpowiednia.

Metoda ARIMA nie wykrywa nieliniowości w danych Sieci neuronowe dają średnie wyniki dla danych w których

występują zarówno liniowe jak i nieliniowe związki

Page 19: Michał Kowalczykiewicz

Hybrid

Dla danych o których nie wiemy, czy są związki w nich występujące są liniowe czy, też nie żadna z wymienionych metoda nie jest odpowiednia.

Metoda ARIMA nie wykrywa nieliniowości w danych Sieci neuronowe dają średnie wyniki dla danych w których

występują zarówno liniowe jak i nieliniowe związki

Potrzebujemy uniwersalnego modelu, odpowiedniego dla wszystkich rodzajów danych

Page 20: Michał Kowalczykiewicz

Hybrid

Model: yt = Lt + Nt

Lt - liniowy komponent

Nt - nieliniowy komponent

Te dwa parametry muszą zostać wyznaczone z danych

Page 21: Michał Kowalczykiewicz

Hybrid - Liniowy komponent

Liniowy komponent Wpierw metodą ARIMA modelujemy liniowy komponent (Ľ). Jeśli tylko Ľ~L (czyli Ľ zawiera wszystkie liniowe relacje w

danych) to residua powstałe z liniowego modelu będą zawierały tylko nieliniowe związki.

Page 22: Michał Kowalczykiewicz

Hybrid - Nieliniowy komponent

Nieliniowy komponent Niech et będzie resztą z dopasowanego liniowego modelu w

czasie t. Wtedy: et = yt - Ľ t

Te wartości możemy zamodelować za pomocą sieci neuronowej:

et = f(et-1, et-2, . . ., et-n) + єt

єt - losowy błąd w czasie t

Page 23: Michał Kowalczykiewicz

Hybrid

Ostatecznie

yt ~ Ľ t + N’t

gdzie N’t przewidywana wartość w czasie t wyznaczona przez ANN

Page 24: Michał Kowalczykiewicz

Hybrid - przykłady

Testowane szeregi czasowe: Lynx Sunspot Exchange rate

Page 25: Michał Kowalczykiewicz

Dziękuję za uwagę