Michał Kowalczykiewicz

Post on 07-Jan-2016

63 views 0 download

description

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). Szereg czasowy. - PowerPoint PPT Presentation

Transcript of 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)

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)

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)

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)

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

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

ARIMA

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

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

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.

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)

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

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

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

ARIMA - walidacja

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

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).

ANN

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

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

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.

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

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

Hybrid

Model: yt = Lt + Nt

Lt - liniowy komponent

Nt - nieliniowy komponent

Te dwa parametry muszą zostać wyznaczone z danych

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.

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

Hybrid

Ostatecznie

yt ~ Ľ t + N’t

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

Hybrid - przykłady

Testowane szeregi czasowe: Lynx Sunspot Exchange rate

Dziękuję za uwagę