Z Skrypty dla studentów Ekonofizyki UPGOW
(→Generowanie procesów ARMA z Matlabem / GNU Octave) |
(→ARIMA) |
||
Linia 140: | Linia 140: | ||
</gallery></center> | </gallery></center> | ||
- | ==ARIMA== | + | ==Rozszerzenia procesów ARMA== |
+ | Procesy ARMA są zdecydowanie najbardziej istotną rodziną modeli reprezentujących ''stacjonarne'' szeregi czasowe. Istnieją jednak uogólnienia tej klasy procesów, opisujące szeroką gamę procesów niestacjonarnych zwanych ARIMA, czyli zIntegrowanymi modelami AutoRegresyjnymi ze Średnią Kroczącą (z ang. '''AutoregRessive Integrated Moving Average'''). W tym rozdziale zaznaczymy istnienie takowych. Warto zaznaczyć, że procesy ARIMA redukują się do procesów ARMA po odpowiednim różnicowaniu. | ||
+ | |||
+ | Jeżeli szereg czasowy nie wykazuje zbytnich odchyleń od stacjonarności oraz jego funkcja autokowariancji (autokorelacji) zanika dość szybko to zwykle rozpatrujemy modele ARMA jako odpowiednie do reprezentacji naszych danych. Jeżeli natomiast nie do końca tak jest to prawdopodobnie modele ARIMA będą bardziej odpowiednie. Jeżeli tak jest w istocie to wystarczy kilkukrotnie zróżnicować dane i otrzymamy stacjonarny szereg z szybko gasnącą funkcją autokorelacji próby. | ||
+ | |||
+ | ===Procesy ARIMA=== | ||
+ | ; Definicja : Niech ''d'' będzie nieujemną liczbą całkowitą. Wtedy <math> \{ X_t \} \ </math> będzie procesem '''ARIMA(p,d,q)''' gdy | ||
+ | : <math> Y_t = (1-B)^dX_t \ </math> | ||
+ | jest przyczynowym procesem ARMA(p,q). | ||
+ | |||
+ | Powyższa definicja oznacza, że <math> \{ X_t \} \ </math> spełnia równanie różnicowe | ||
+ | : <math> \varphi^* (B) X_t = \varphi(B) (1 - B)^d X_t = \theta(B) Z_t, ~~~ \{ Z_t \} = BS(0, \sigma^2) \ </math> | ||
+ | |||
+ | i jak wcześniej <math> \varphi </math> oraz <math> \theta </math> to wielomiany odpowiednio ''p''-tego i ''q''-tego stopnia. | ||
+ | : <math> \varphi (u) = 1 - \varphi_1 u - \dots - \varphi_p u^p, \ </math> | ||
+ | : <math> \theta(u) = 1 + \theta_1 u + \dots + \theta_q u^q, \ </math> | ||
+ | oraz <math> \varphi(z) \ne 0 </math> dla <math> |z| \le 1 </math> a operator ''B'' to operator cofnięcia w czasie. Wielomian <math> \varphi^* (z) </math> wykazuje miejsce zerowe rzędu ''d'' w ''z = 1''. Proces <math> \{ X_t \} \ </math> jest stacjonarny tylko kiedy ''d = 0'' (ale w tym przypadku model ARIMA(p,d,q) redukuje się do procesu ARMA(p,q). | ||
==SARIMA== | ==SARIMA== | ||
==...== | ==...== |
Wersja z 20:12, 27 gru 2010
Analiza Szeregów Czasowych <<< Dekompozycja szeregu czasowego | Techniki analizy szeregów czasowych >>>
Spis treści |
Stacjonarne procesy ARMA
Niektóre szeregi czasowe \( \{ X_t \} \) możemy przedstawić w formie układu równac różnicowych ze stałymi współczynnikami. Takie równania definiują rodzinę procesów parametrycznych zwanych Modelami Autoregresyjnymi ze Średnią Kroczącą (Autoregresive Moving Average Models) lub krótko ARMA.
Dla każdej funkcji autokwariancji \( \gamma (\cdot) \) takiej, że
- \( \lim_{h \ to \infty} \gamma (h) = 0 \ \)
oraz dla dowolnej stałej k > 0 jesteśmy w stanie znaleźć model ARMA z funkcją autokowariancji \( \gamma_X (\cdot) \) taką, że
- \( \gamma_X (h) = \gamma(h), ~~~h = 0, 1, \dots, k. \ \)
Tak określona klasa modeli to prawdopodobnie najważniejsza rodzina procesów spotykana w modelowaniu szeregów czasowych. Dodatkowa liniowość procesów ARMA pozwala na łatwą (bo liniową) predykcję zmian szeregu czasowego.
"Szum biały"
Matematycznie rzecz biorąc Gaussowski szum biały zdefiniowany jest jako pochodna procesu Wienera. Poissonowski biały szum zdefiniowany jest jako pochodna procesu Poisona. Na potrzeby tego kursu wystarczy nam nieco mniej ścisła i dużo prostsza definicja.
- Definicja (szum biały)
- Proces \( \{ Z_t \} \) nazywamy białym szumem ze średnią zero i wariancją \( \sigma^2 \) i oznaczamy jako
- \( \{ Z_t \} = BS (0,\sigma^2) [ = WN(0,\sigma^2) ] \ \)
wtedy i tylko wtedy gdy \( \{ Z_t \} \) posiada średnią zero i funkcję kowariancji \[ \gamma(h) = \left \{ {{\sigma^2, h = 0} \atop {0, h \ne 0}} \right. \] lub odpowiednio \[ \rho(h) = \left \{ {{1, h = 0} \atop {0, h \ne 0}} \right. \]
Jeżeli zmienne losowe \( Z_t \) mają takie same, niezależne od siebie rozkłady ze średnią zero i wariancją \( \sigma^2 \) to wtedy oznaczamy je
- \( Z_t = IID (0, \sigma^2). \)
Dość szeroka klasa procesów stochastycznych może być modelowana z użyciem białego szumu jako losowej siły napędzającej w układzie równań (liniowych równań różnicowych).
ARMA
- Definicja
- Proces \( \{ X_t, t = 0,\pm 1,\pm 2, \dots, \} \) nazywamy procesem ARMA(p,q) jeżeli jest on stacjonarny oraz jeżeli dla każdego t
- \( X_t = c + Z_t + \sum_{i=1}^p \varphi_i X_{t-i} + \sum_{i=1}^q \theta_i Z_{t-i}.\,\) (ARMA1.1)
gdzie
- \( Z_t = BS (0, \sigma^2). \) (ARMA1,2)
Mówimy, że proces \( \{ X_t \} \) jest procesem ARMA(p,q) o średniej \(\mu\), jeżeli \( \{ X_t - \mu \} \) jest procesem ARMA(p,q).
Równanie (ARMA1.1) określające definicję procesu ARMA(p,q) możemy zapisać w nieco bardziej zwartej formie (pomijamy tu stały czynnik c, co w niczym nie zmienia poniższych dywagacji) \[ \varphi (B) X_t = \theta(B) Z_t, ~~~t = 1, \pm 1, \pm 2, \dots \ \] gdzie \( \varphi \) oraz \( \theta \) to wielomiany odpowiednio p-tego i q-tego stopnia.
- \( \varphi (u) = 1 - \varphi_1 u - \dots - \varphi_p u^p, \ \)
- \( \theta(u) = 1 + \theta_1 u + \dots + \theta_q u^q, \ \)
a operator B to operator cofnięcia w czasie, który już znamy. Wielomian \( \varphi \ \) nazywany jest wielomianem autoregresji, a wielomian \( \theta \ \) nazywamy wielomianem średniej kroczącej równań różnicowych (ARMA1.1).
Proces MA(q)
Jeżeli \( \varphi(z) = 1 \ \) to
- \( X_t = \theta(B) Z_t \ \) (MA1.1)
i proces \( X_t \ \) nazywamy procesem średniej kroczącej rzędu q \( \equiv \) MA(q). Rozwiązaniem równania (MA1.1) jest proces stacjonarny. Gdy \( \theta_0 = 1, \theta_j = 0, ~j > q \ \) widzimy, że
- \( EX_t = E \theta(B) Z_t = E \sum_{j=0}^q \theta_j Z_{t-j} = \sum_{j=0}^q \theta_j E Z_{t-j} = 0, \ \) (średnia procesu jest 0),
- \( \gamma(h) = cov (X_{t+h}, X_t) = \left \{ {{\sigma^2 \sum_{j=0}^{q-|h|} \theta_j \theta{j+|h|}, |h| \le q} \atop {0, |h| > q}} \right. \ \)
Proces AR(p)
W przypadku odwrotnym do poprzedniego, tj. jeżeli \( \theta(z) = 1 \,\) to mamy
- \( \varphi (B) X_t = Z_t \ \) (AR1.1)
a proces \( \{ X_t \} \,\) nazywamy procesem autoregresji rzędu p [lub AR(p)]. W tym przypadku pokazanie istnienia jednoznacznego i stacjonarnego rozwiązania równań (AR1.1) wymaga nieco dłuższego rachunku.
Niech \( \varphi (z) = 1 = \theta_1 z \,\), czyli
- \( X_t - \varphi_1 X_{t-1} = Z_t \Longrightarrow \,\)
- \( X_t = Z_t + \varphi_1 X_{t-1} \,\) (AR1.2)
Iterując równanie (AR1.2) k-razy dostajemy
- \( X_t = Z_t + \varphi_1 Z_{t-1} + \varphi_1^{2} Z_{t-2} + \dots + \varphi_1^{k+1} X_{t-k -1}. \,\)
Jeżeli \( |\varphi_1| < 1 \ \) oraz \( X_t \ \) jest procesem stacjonarnym to \( ||X_t||^2 = E(X^2) \ \) jest liczbą stałą i
- \( ||X_t - \sum_{j=0}^k \varphi_1^j Z_{t-j}||^2 = \varphi_1^{2k+2} || X_{t-k-1}||^2 \to 0, ~~k \to \infty. \)
A ponieważ \( \sum_{j=0}^\infty \varphi_1^j Z_{t-j} \) jest zbieżne w sensie średnio-kwadratowym (na mocy kryterium Cauchy-ego) to mamy
- \( X_t = \sum_{j=0}^\infty \varphi_1^j Z_{t-j}. \) (AR1.3)
Powyższe równanie (AR1.3) jest rozwiązaniem równania (AR1.1) nie tylko w sensie średnio-kwadratowym, ale i z prawdopodobieństwem równym 1. \( X_t \) jest oczywiście stacjonarne, bo
- \( EX_t = \sum_{j=0}^\infty \varphi_1^j E Z_{t-j}, \ \)
- \( \begin{align} cov(X_{t+h}, X_t) &= \lim_{n \to \infty} E[(\sum_{j=0}^\infty \varphi_1^j Z_{t+h-j})(\sum_{k=0}^\infty \varphi_1^k Z_{t-k})] \\ &= \sigma^2 \varphi1^{|h|} \sum_{j=0}^\infty \varphi_1^{2j} = \sigma^2 \varphi1^{|h|} (1 - \varphi_1^2) = \gamma (h) \end{align} \)
Jeżeli \( |\varphi_1| > 1 \) to możemy przepisać proces jako
- \( X_t = -\varphi_1^{-1} Z_{t+1} + \varphi_1^{-1} X_{t+1} \ \) (AR1.4)
i postępować nieco podobnie. W ogólności nie będziemy jednak na tym kursie pokazywać zbieżności oraz faktu, że równanie (AR1.4) może być jednoznacznym rozwiązaniem (AR1.1), ale ograniczymy się do powiedzenia, że każdy proces z \( |\varphi_1| > 1 \) można sprowadzić do procesu AR(1) \( |\varphi_1| < 1 \) z odpowiednio przeskalowanym szumem białym.
Gdy \( |\varphi_1| = 1 \) to układ (AR1.1) nie ma stacjonarnego rozwiązania, tzn. nie ma takiego procesu jak AR(1) z \( |\varphi_1| = 1 \), aczkolwiek jesteśmy w stanie iterując równanie
- \( X_t = Z_t - X_{t-1} \)
wygenerować realizacje takiego procesu.
Teraz możemy pokusić się o zdefiniowanie losowego procesu ARMA.
- Definicja
- ARMA(p,q) zdefiniowany jako
- \( \varphi(B) X_t = \theta(B) Z_t \ \)
- nazywamy losowym, gdy istnieje taka sekwencja \( \{ \Psi_j \} \), że
- \( \sum_{j=0}^\infty |\Psi_j| < \infty \)
- oraz
- \( X_t = \sum_{j=0}^\infty \Psi_j Z_{t-j}, ~~~t=0, \pm 1, \pm 2, \dots \)
- Losowość wynika z zależności pomiędzy wynikowym procesem \(X_t \ \) oraz źródłowym precesem \(Z_t \ \), a nie z samego procesu \(X_t \ \).
Generowanie procesów ARMA z Matlabem / GNU Octave
Prezentowany tu skrypt nie ma na celu zajmowanie się modelami ARMA i ich pochodnymi. Rozdział ten służy raczej jako rozdział poglądowy wyjaśniający podmiot badań. Podobnie jest zresztą z częścią wprowadzającą do zagadnień prawdopodobieństwa i procesów losowych. Są to czysto techniczne części materiału, bez których jednak kilka (tych istotnych) zagadnień omawiało by się dużo trudniej.
Jeżeli chodzi o generowanie realizacji procesów ARMA(p,q), które później możemy wykorzystać do testowania naszych metod estymacji modeli z szeregów czasowych (następny rozdział), to idealnym pakietem służącym do tego wydaje się być pakiet TSA. Omówiony jest on bardziej szczegółowo w ostatnim rozdziale niniejszej publikacji. W tym miejscu wspomnimy tylko o podstawowym skrypcie służącym do generowania realizacji procesów ARMA (którym to między innymi wygenerowano wykresy widoczne w poprzednich podrozdziałach).
Funkcją o której mówimy jest funkcja
-
arma_rnd (A, B, V, T, N)
zwracająca T indeksowanych wartości procesu ARMA(p,q) zdefiniowanych poprzez dwa wektory
- A - wektor odpowiadający za proces AR(p), czyli nasze \( \varphi \)
- B - wektor odpowiadający za proces MA(q), czyli nasze \( \theta \)
oraz wartość
- V
będącą wariancją 'białego szumu'. Dodatkowy parametr N odpowiada za pominięte wartości początkowe realizacji. Jeżeli nie podamy tego parametru, przyjmowane jest domyślnie N = 100.
Przykładowymi wywołaniami będą:
Rozszerzenia procesów ARMA
Procesy ARMA są zdecydowanie najbardziej istotną rodziną modeli reprezentujących stacjonarne szeregi czasowe. Istnieją jednak uogólnienia tej klasy procesów, opisujące szeroką gamę procesów niestacjonarnych zwanych ARIMA, czyli zIntegrowanymi modelami AutoRegresyjnymi ze Średnią Kroczącą (z ang. AutoregRessive Integrated Moving Average). W tym rozdziale zaznaczymy istnienie takowych. Warto zaznaczyć, że procesy ARIMA redukują się do procesów ARMA po odpowiednim różnicowaniu.
Jeżeli szereg czasowy nie wykazuje zbytnich odchyleń od stacjonarności oraz jego funkcja autokowariancji (autokorelacji) zanika dość szybko to zwykle rozpatrujemy modele ARMA jako odpowiednie do reprezentacji naszych danych. Jeżeli natomiast nie do końca tak jest to prawdopodobnie modele ARIMA będą bardziej odpowiednie. Jeżeli tak jest w istocie to wystarczy kilkukrotnie zróżnicować dane i otrzymamy stacjonarny szereg z szybko gasnącą funkcją autokorelacji próby.
Procesy ARIMA
- Definicja
- Niech d będzie nieujemną liczbą całkowitą. Wtedy \( \{ X_t \} \ \) będzie procesem ARIMA(p,d,q) gdy
- \( Y_t = (1-B)^dX_t \ \)
jest przyczynowym procesem ARMA(p,q).
Powyższa definicja oznacza, że \( \{ X_t \} \ \) spełnia równanie różnicowe
- \( \varphi^* (B) X_t = \varphi(B) (1 - B)^d X_t = \theta(B) Z_t, ~~~ \{ Z_t \} = BS(0, \sigma^2) \ \)
i jak wcześniej \( \varphi \) oraz \( \theta \) to wielomiany odpowiednio p-tego i q-tego stopnia.
- \( \varphi (u) = 1 - \varphi_1 u - \dots - \varphi_p u^p, \ \)
- \( \theta(u) = 1 + \theta_1 u + \dots + \theta_q u^q, \ \)
oraz \( \varphi(z) \ne 0 \) dla \( |z| \le 1 \) a operator B to operator cofnięcia w czasie. Wielomian \( \varphi^* (z) \) wykazuje miejsce zerowe rzędu d w z = 1. Proces \( \{ X_t \} \ \) jest stacjonarny tylko kiedy d = 0 (ale w tym przypadku model ARIMA(p,d,q) redukuje się do procesu ARMA(p,q).