Analiza Szeregów Czasowych/Modelowanie szeregów czasowych

Z Skrypty dla studentów Ekonofizyki UPGOW

(Różnice między wersjami)
(ARMA)
m (Stacjonarne procesy ARMA)
 
(Nie pokazano 28 wersji pomiędzy niniejszymi.)
Linia 1: Linia 1:
-
[[Analiza Szeregów Czasowych]]
+
<center>
 +
[[Analiza Szeregów Czasowych]]
 +
[[Analiza Szeregów Czasowych/Dekompozycja szeregu czasowego |<<< Dekompozycja szeregu czasowego]] | [[Analiza Szeregów Czasowych/Techniki analizy szeregów czasowych |Techniki analizy szeregów czasowych >>>]]
 +
</center>
__TOC__
__TOC__
Linia 7: Linia 10:
Dla każdej funkcji autokwariancji <math> \gamma (\cdot) </math> takiej, że  
Dla każdej funkcji autokwariancji <math> \gamma (\cdot) </math> takiej, że  
-
: <math> \lim_{h \ to \infty} \gamma (h) = 0 \ </math>
+
: $$ \lim_{h \to \infty} \gamma (h) = 0 \ $$
oraz dla dowolnej stałej ''k > 0'' jesteśmy w stanie znaleźć model ARMA z funkcją autokowariancji <math> \gamma_X (\cdot) </math> taką, że  
oraz dla dowolnej stałej ''k > 0'' jesteśmy w stanie znaleźć model ARMA z funkcją autokowariancji <math> \gamma_X (\cdot) </math> taką, że  
: <math> \gamma_X (h) = \gamma(h), ~~~h = 0, 1, \dots, k. \ </math>
: <math> \gamma_X (h) = \gamma(h), ~~~h = 0, 1, \dots, k. \ </math>
Linia 31: Linia 34:
; Definicja : Proces <math> \{ X_t, t = 0,\pm 1,\pm 2, \dots, \} </math> nazywamy procesem ARMA(p,q) jeżeli jest on stacjonarny oraz jeżeli dla każdego ''t''
; Definicja : Proces <math> \{ X_t, t = 0,\pm 1,\pm 2, \dots, \} </math> nazywamy procesem ARMA(p,q) jeżeli jest on stacjonarny oraz jeżeli dla każdego ''t''
-
: <math> X_t = c + Z_t +  \sum_{i=1}^p \varphi_i X_{t-i} + \sum_{i=1}^q \theta_i Z_{t-i}.\,</math>
+
: <math> X_t = c + Z_t +  \sum_{i=1}^p \varphi_i X_{t-i} + \sum_{i=1}^q \theta_i Z_{t-i}.\,</math> (ARMA1.1)
gdzie
gdzie
-
: <math> Z_t = BS (0, \sigma^2). </math>
+
: <math> Z_t = BS (0, \sigma^2). </math> (ARMA1,2)
-
==MA==
+
Mówimy, że proces <math> \{ X_t \} </math> jest procesem ARMA(p,q) o średniej <math>\mu</math>, jeżeli <math> \{ X_t - \mu \} </math> jest procesem ARMA(p,q).
-
==ARMA==
+
 
-
==ARIMA==
+
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)
-
==SARIMA==
+
:<math> \varphi (B) X_t = \theta(B) Z_t, ~~~t = 1, \pm 1, \pm 2, \dots \ </math>
-
==...==
+
gdzie <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>
 +
a operator ''B'' to operator cofnięcia w czasie, który już znamy. Wielomian <math> \varphi \ </math> nazywany jest wielomianem autoregresji, a wielomian <math> \theta \ </math> nazywamy wielomianem średniej kroczącej równań różnicowych (ARMA1.1).
 +
 
 +
====Proces MA(q)====
 +
Jeżeli <math> \varphi(z) = 1 \ </math> to
 +
: <math> X_t = \theta(B) Z_t \ </math> (MA1.1)
 +
i proces <math> X_t \ </math> nazywamy procesem średniej kroczącej rzędu ''q'' <math> \equiv </math> MA(q). Rozwiązaniem równania (MA1.1) jest proces stacjonarny. Gdy <math> \theta_0 = 1, \theta_j = 0, ~j > q \ </math> widzimy, że
 +
: <math> 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, \ </math> (średnia procesu jest 0),
 +
: <math> \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.  \ </math>
 +
 
 +
<center><gallery widths=240 heights=180 perrow=2 caption="Przykładowe realizacje procesu MA(q)">
 +
Plik:ma1_sc.png|<center>MA(1)</center>
 +
Plik:ma2_sc.png|<center>MA(2)</center>
 +
Plik:ma3_sc.png|<center>MA(3)</center>
 +
Plik:ma4_sc.png|<center>MA(4)</center>
 +
</gallery></center>
 +
 
 +
====Proces AR(p)====
 +
W przypadku odwrotnym do poprzedniego, tj. jeżeli <math> \theta(z) = 1 \,</math> to mamy
 +
: <math> \varphi (B) X_t = Z_t \ </math> (AR1.1)
 +
a proces <math> \{ X_t \} \,</math> 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 <math> \varphi (z) = 1 = \theta_1 z \,</math>, czyli
 +
: <math> X_t - \varphi_1 X_{t-1} = Z_t \Longrightarrow  \,</math>
 +
: <math> X_t = Z_t + \varphi_1 X_{t-1} \,</math> (AR1.2)
 +
 
 +
Iterując równanie (AR1.2) ''k''-razy dostajemy
 +
: <math> X_t = Z_t + \varphi_1 Z_{t-1} + \varphi_1^{2} Z_{t-2} + \dots + \varphi_1^{k+1} X_{t-k -1}. \,</math>
 +
 
 +
Jeżeli <math> |\varphi_1| < 1 \ </math> oraz <math> X_t \ </math> jest procesem stacjonarnym to <math> ||X_t||^2 = E(X^2) \ </math> jest liczbą stałą i
 +
: <math> ||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. </math>
 +
 
 +
A ponieważ <math> \sum_{j=0}^\infty \varphi_1^j Z_{t-j} </math> jest zbieżne w sensie średnio-kwadratowym (na mocy kryterium Cauchy-ego) to mamy
 +
: <math> X_t = \sum_{j=0}^\infty \varphi_1^j Z_{t-j}. </math> (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. <math> X_t </math> jest oczywiście stacjonarne, bo
 +
: <math> EX_t = \sum_{j=0}^\infty \varphi_1^j E Z_{t-j}, \ </math>
 +
: <math>
 +
\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}
 +
</math>
 +
 
 +
Jeżeli <math> |\varphi_1| > 1 </math> to możemy przepisać proces jako
 +
: <math> X_t = -\varphi_1^{-1} Z_{t+1} + \varphi_1^{-1} X_{t+1} \ </math> (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 <math> |\varphi_1| > 1 </math> można sprowadzić do procesu AR(1) <math> |\varphi_1| < 1 </math> z odpowiednio przeskalowanym szumem białym.
 +
 
 +
[[Grafika:phi1_1.png|thumb|right|240px|4 realizacje procesu losowego <math> X_t = Z_t - X_{t-1} </math>]]
 +
Gdy <math> |\varphi_1| = 1 </math> to układ (AR1.1) nie ma stacjonarnego rozwiązania, tzn. nie ma takiego procesu jak AR(1) z <math> |\varphi_1| = 1 </math>, aczkolwiek jesteśmy w stanie iterując równanie
 +
: <math> X_t = Z_t - X_{t-1} </math>
 +
wygenerować realizacje takiego procesu.
 +
 
 +
Teraz możemy pokusić się o zdefiniowanie ''losowego'' procesu ARMA.
 +
 
 +
; Definicja : ARMA(p,q) zdefiniowany jako
 +
: <math> \varphi(B) X_t = \theta(B) Z_t \ </math>
 +
: nazywamy losowym, gdy istnieje taka sekwencja <math> \{ \Psi_j \} </math>, że
 +
: <math> \sum_{j=0}^\infty |\Psi_j| < \infty </math>
 +
: oraz
 +
: <math> X_t = \sum_{j=0}^\infty \Psi_j Z_{t-j}, ~~~t=0, \pm 1, \pm 2, \dots </math>
 +
: Losowość wynika z zależności pomiędzy wynikowym procesem <math>X_t \ </math> oraz źródłowym precesem <math>Z_t \ </math>, a nie z samego procesu <math>X_t \ </math>.
 +
<center><gallery widths=240 heights=180 perrow=2 caption="Przykładowe realizacje procesu AR(p)">
 +
Plik:ar1_sc.png|<center>AR(1)</center>
 +
Plik:ar2_sc.png|<center>AR(2)</center>
 +
Plik:ar3_sc.png|<center>AR(3)</center>
 +
Plik:ar4_sc.png|<center>AR(4)</center>
 +
</gallery></center>
 +
 
 +
====Generowanie procesów ARMA z Matlabem / GNU Octave====
 +
Prezentowany tu skrypt nie stawia sobie za cel konstruowania modeli ARMA czy ich pochodnych. 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
 +
: <source lang="matlab">
 +
arma_rnd (A, B, V, T, N)
 +
</source>
 +
zwracająca '''T''' indeksowanych wartości procesu ARMA(p,q) zdefiniowanych poprzez dwa wektory
 +
: '''A''' - wektor odpowiadający za proces AR(p), czyli nasze <math> \varphi </math>
 +
: '''B''' - wektor odpowiadający za proces MA(q), czyli nasze <math> \theta </math>
 +
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ą:
 +
 
 +
<center><gallery widths=310 heights=180 perrow=2 caption="Przykładowe wykorzystanie funkcji arma_rnd">
 +
Plik:arma1_sc.png|<center>AR(2) <source lang="matlab">x = arma_rnd ([0.9,-0.3], [0], 1, 400, 1000)</source></center>
 +
Plik:arma2_sc.png|<center>MA(1): <source lang="matlab">x = arma_rnd ([0], [0.3], 1, 400, 1000)</source></center>
 +
Plik:arma3_sc.png|<center>ARMA(2,1): <source lang="matlab">x = arma_rnd ([0.4,0.4], [-0.3], 1, 400, 1000)</source></center>
 +
Plik:arma4_sc.png|<center>ARMA(2,3): <source lang="matlab">x=arma_rnd([0.7,-0.1],[0.3,0.3,-0.5],1,400,1000)</source></center>
 +
</gallery></center>
 +
 
 +
==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 modele autoregresyjne scałkowane ze średnią ruchomą 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).
 +
 
 +
===Procesy SARIMA===
 +
W poprzednim rozdziale widzieliśmy, jak stosunkowo prosto, korzystając z różnych metod jesteśmy w stanie usunąć sezonowość z posiadanych danych. Patrząc na ten proces "od tyłu" otrzymamy pogląd na to czym jest proces SARIMA czyli Sezonowe modele autoregresyjne scałkowane ze średnią ruchomą kroczącą ('''Seasonal AutoRegressive Integrated Moving Average''').
 +
 
 +
Załóżmy, że (po usunięciu sezonowości o okresie ''s'' z oryginalnego procesu <math> \{ X_t \} \,</math>) mamy proces <math> \{ Y_t = (1-B^s)X_t \} \,</math> do którego dopasowaliśmy proces ARMA(p,q)
 +
: <math> \varphi(B) Y_t = \theta (B) Z_t \,</math>
 +
zatem model do oryginalnych danych będzie obecnie wyglądał następująco
 +
: <math> \varphi(B)(1 - B^s) X_t = \theta (B) Z_t. \,</math>
 +
Właśnie tak wyglądają procesy SARIMA, ale podamy nieco bardziej formalną definicję.
 +
 
 +
; Definicja : Jeżeli ''d'' oraz ''D'' to nieujemne liczby całkowite to <math> \{ X_t \} \,</math> będzie '''sezonowym procesem ARIMA(p,d,q)<math>\times</math>(P,D,Q) o okresie ''s'' ''' jeżeli tylko zróżnicowane dane <math> \{ Y_t = (1-B)^d(1-B^s)^D X_t \} \,</math> są przyczynowym procesem ARMA(p,q) zdefiniowanym jako
 +
: <math> \varphi(B) \Phi(B^s) Y_t  = \theta(B) \Theta(B^s) Z_t, ~~\{ Z_t \} = BS(0,\sigma^2) \,</math>
 +
gdzie odpowiednie wielomiany
 +
: <math> \varphi (u) = 1 - \varphi_1 u - \dots - \varphi_p u^p, \ </math>
 +
: <math> \Phi (u) = 1 - \Phi_1 u - \dots - \Phi_P u^P, \ </math>
 +
: <math> \theta(u) = 1 + \theta_1 u + \dots + \theta_q u^q, \ </math>
 +
: <math> \Theta(u) = 1 + \Theta_1 u + \dots + \Theta_Q u^Q. \ </math>
 +
 
 +
; Uwaga 1: Proces <math> \{ Y_t \} \ </math> jest przyczynowy gdy <math> \varphi(z) \ne 0, \Phi(z) \ne 0 \ </math> dla <math> |z| \le 1 </math>.
 +
 
 +
; Uwaga 2: W rozdziale [[Analiza Szeregów Czasowych/Dekompozycja szeregu czasowego#Eliminacja Trendu oraz Sezonowości |poprzednim]] sezonowość była deterministyczna. Znaczy to, że element okresowy rzeczywiście było czysto okresowy i odchylenia sezonowe pojawiały się regularnie. W tym przypadku nie musimy zakładać tak regularnych zmian. Sezonowość w procesach SARIMA może również podlegać zmianom losowym.
 +
 
 +
===Szeregi czasowe o wielu zmiennych===
 +
Wiadomości wykładane w ramach praktycznego kursu analizy szeregów czasowych z uwagi na skończoną ilość czasu dostępną w jednym semestrze zajęć w naturalny sposób nie wychodzi poza analizę przebiegów czasowych jednej zmiennej losowej. W ogólności jednak procesy losowe i ich realizacje w postaci szeregów czasowych bardzo często można rozpatrywać jako komponenty skomplikowanego procesu <math> \{ \mathbf{X} \} \ </math> wielu zmiennych, gdzie zależności występują nie tylko w czasie ale i pomiędzy odpowiednimi komponentami procesu wielu zmiennych <math> \{ X_{tl} \} \ </math> i <math> \{ X_{tm} \}. \ </math> Ich realizacje to np: dane panelowe zawierające więcej niż jeden szereg czasowy ze zgodnym indeksowaniem. W tym miejscu chcieliśmy tylko zaznaczyć, że wiele teoretycznych aspektów przenosi się w sposób bezpośredni z analizy ''jednowymiarowych'' procesów losowych do świata ''wielowymiarowych'' procesów losowych. Pojawiają się i nowe zagadnienia, ale jest to problem który ze względu na ograniczenia czasowe pozostawiamy otwartym.

Aktualna wersja na dzień 11:46, 6 cze 2011

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.

4 realizacje procesu losowego \( X_t = Z_t - X_{t-1} \)

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 stawia sobie za cel konstruowania modeli ARMA czy ich pochodnych. 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 modele autoregresyjne scałkowane ze średnią ruchomą 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).

Procesy SARIMA

W poprzednim rozdziale widzieliśmy, jak stosunkowo prosto, korzystając z różnych metod jesteśmy w stanie usunąć sezonowość z posiadanych danych. Patrząc na ten proces "od tyłu" otrzymamy pogląd na to czym jest proces SARIMA czyli Sezonowe modele autoregresyjne scałkowane ze średnią ruchomą kroczącą (Seasonal AutoRegressive Integrated Moving Average).

Załóżmy, że (po usunięciu sezonowości o okresie s z oryginalnego procesu \( \{ X_t \} \,\)) mamy proces \( \{ Y_t = (1-B^s)X_t \} \,\) do którego dopasowaliśmy proces ARMA(p,q)

\( \varphi(B) Y_t = \theta (B) Z_t \,\)

zatem model do oryginalnych danych będzie obecnie wyglądał następująco

\( \varphi(B)(1 - B^s) X_t = \theta (B) Z_t. \,\)

Właśnie tak wyglądają procesy SARIMA, ale podamy nieco bardziej formalną definicję.

Definicja 
Jeżeli d oraz D to nieujemne liczby całkowite to \( \{ X_t \} \,\) będzie sezonowym procesem ARIMA(p,d,q)\(\times\)(P,D,Q) o okresie s jeżeli tylko zróżnicowane dane \( \{ Y_t = (1-B)^d(1-B^s)^D X_t \} \,\) są przyczynowym procesem ARMA(p,q) zdefiniowanym jako
\( \varphi(B) \Phi(B^s) Y_t = \theta(B) \Theta(B^s) Z_t, ~~\{ Z_t \} = BS(0,\sigma^2) \,\)

gdzie odpowiednie wielomiany

\( \varphi (u) = 1 - \varphi_1 u - \dots - \varphi_p u^p, \ \)
\( \Phi (u) = 1 - \Phi_1 u - \dots - \Phi_P u^P, \ \)
\( \theta(u) = 1 + \theta_1 u + \dots + \theta_q u^q, \ \)
\( \Theta(u) = 1 + \Theta_1 u + \dots + \Theta_Q u^Q. \ \)
Uwaga 1
Proces \( \{ Y_t \} \ \) jest przyczynowy gdy \( \varphi(z) \ne 0, \Phi(z) \ne 0 \ \) dla \( |z| \le 1 \).
Uwaga 2
W rozdziale poprzednim sezonowość była deterministyczna. Znaczy to, że element okresowy rzeczywiście było czysto okresowy i odchylenia sezonowe pojawiały się regularnie. W tym przypadku nie musimy zakładać tak regularnych zmian. Sezonowość w procesach SARIMA może również podlegać zmianom losowym.

Szeregi czasowe o wielu zmiennych

Wiadomości wykładane w ramach praktycznego kursu analizy szeregów czasowych z uwagi na skończoną ilość czasu dostępną w jednym semestrze zajęć w naturalny sposób nie wychodzi poza analizę przebiegów czasowych jednej zmiennej losowej. W ogólności jednak procesy losowe i ich realizacje w postaci szeregów czasowych bardzo często można rozpatrywać jako komponenty skomplikowanego procesu \( \{ \mathbf{X} \} \ \) wielu zmiennych, gdzie zależności występują nie tylko w czasie ale i pomiędzy odpowiednimi komponentami procesu wielu zmiennych \( \{ X_{tl} \} \ \) i \( \{ X_{tm} \}. \ \) Ich realizacje to np: dane panelowe zawierające więcej niż jeden szereg czasowy ze zgodnym indeksowaniem. W tym miejscu chcieliśmy tylko zaznaczyć, że wiele teoretycznych aspektów przenosi się w sposób bezpośredni z analizy jednowymiarowych procesów losowych do świata wielowymiarowych procesów losowych. Pojawiają się i nowe zagadnienia, ale jest to problem który ze względu na ograniczenia czasowe pozostawiamy otwartym.