250 likes | 445 Views
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.
E N D
Michał Kowalczykiewicz Time series forecasting using a hybrid ARIMA and neural network model (na podstawie pracy zNeurocomputing 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łądw 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łądw czasie t
Hybrid • Ostatecznie • yt ~ Ľ t + N’t • gdzieN’t przewidywana wartość w czasie t wyznaczona przez ANN
Hybrid - przykłady • Testowane szeregi czasowe: • Lynx • Sunspot • Exchange rate