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ę