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 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 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ę