Processing math: 0%
Analiza Szeregów Czasowych/Techniki analizy szeregów czasowych

Z Skrypty dla studentów Ekonofizyki UPGOW

Analiza Szeregów Czasowych
<<< Modelowanie szeregów czasowych | Matlab / GNU Octave >>>

Spis treści

[ukryj]


Estymacja parametrów modeli

Szacowanie parametrów modeli rządzących szeregami czasowymi to niełatwe zagadnienie. Jest to również przedostatni krok w analizie szeregów czasowych. Ostatnim krokiem jest predykcja przyszłych wartości szeregu w oparciu o dane posiadane. ,

Aby oszacować jaki to model ARMA(p,q) stoi za analizowanym szeregiem czasowym musimy wykonać kilka kroków

  • jakie p i q należy wybrać
  • oszacować średnią oraz współczynniki AR oraz MA \theta_j \ , i=1,...,p, j=1,...,q,
  • oszacować wariancję szumu \sigma^2 \ dla wybranych parametrów,
  • sprawdzić poprawność wybranego modelu (najlepiej dla różnych zestawów parametrów p i q).

Ostateczna decyzja, czy dany model dobrze reprezentuje dane zależy od kilku możliwych testów.

Zakładamy obecnie, że fitować będziemy model ARMA do danych których średnia wynosi 0

\langle X_t \rangle = EX_t = 0.

Jeżeli \{ Y_t \} oznacza oryginalne dane, to X_t = Y_t - EY_t .

Będziemy dopasowywać dane do modelu

X_t - \varphi_1X_{t-1} - \dots - \varphi_p X_{t-p} = Z_t + \theta_1Z_{t-1} - \dots - \varphi_q Z_{t-q}, \{ Z_t \} = BS(0,\sigma^2) \

Czyli dla wybranych przez na p i q celem będzie znalezienie wektorów \bar{\varphi} = (\varphi_1, \dots, \varphi_p) oraz \bar{\theta} = (\theta_1, \dots, \theta_q) .

AR

W przypadku, gdy posiadane dane mogą być przybliżone poprzez model autoregresji rzędu p (tj: q = 0), dość dobrym estymatorem wektora \bar{\varphi} okazuje się być prosty algorytm porównujący autokowariancję próby oraz teoretyczną wyliczoną z modelu AR(p). Metoda ta nosi nazwę Yule-Walkera.

Metoda Yule-Walkera

Niech \{ X_t \} \ będzie procesem AR(p) o średniej zerowej

X_t - \varphi_1 X_{t-1} - \dots - \varphi_p X_{t-p} = Z_t, ~~Z_t \sim BS(0, \sigma^2).

Postaramy się teraz oszacować \bar{\varphi} oraz \sigma^2 .

Korzystając z założenia, że \{ X_t \} \ jest losowy \big( X_t = \sum \Psi_j Z_{t-j} \ \big), otrzymujemy równania Yole - Walkera

\begin{align} \Gamma_p \bar{\varphi} &= \gamma_p \\ \sigma^2 &= \gamma(0) - \bar{\varphi}' \gamma_p \end{align}

gdzie

\Gamma_p = [\gamma(i-j)]_{i,j=1}^p - macierz kowariancji,
\gamma_p = (\gamma(1), \gamma(2), \dots, \gamma(p) )'.

Z równań tych możemy łatwo oszacować \gamma(0), \dots, \gamma(p) znając \sigma^2, \bar{\varphi} . Z drugiej strony, jeżeli zamienimy występujące tutaj funkcje autokowariancji na odpowiednie funkcje autokowariancji próby otrzymamy estymatory Yule-Walkera

\begin{align} \hat{\Gamma}_p \hat{\varphi} &= \hat{\gamma}_p, \\ \hat{\sigma}^2 &= \hat{\gamma}(0) - \hat{\varphi}' \hat{\gamma}_p, \end{align}

gdzie odpowiednie

\hat{\Gamma}_p = [\hat{\gamma}(i-j)]_{i,j=1}^p - macierz kowariancji próby,
\hat{\gamma}_p = (\hat{\gamma}(1), \hat{\gamma}(2), \dots, \hat{\gamma}(p) )' - wektor kowariancji próby.

Jeżeli tylko \hat{\gamma}(0) > 0 to możemy podzielić obie strony przez \hat{\gamma}(0) i otrzymamy wtedy

\begin{align} \hat{\bar{\varphi}} &= \hat{R}^{-1}_p \hat{\rho}_p, \\ \hat{\sigma}^2 &= \hat{\gamma}(0) [1 - \hat{\rho'}_p \hat{R}^{-1}_p \hat{\rho}_p], \end{align}

gdzie

\hat{\rho}_p = (\hat{\rho}(1), \hat{\rho}(2), \dots, \hat{\rho}(p) )' = \hat{\gamma}_p/\hat{\gamma}(0) - wektor autokorelacji próby.

Z tak określonym \hat{\bar{\varphi}} można pokazać, że powyższy model jest losowy. Autokowariancje \gamma_F(h) fitowanego modelu powinny spełniać \gamma_F(h) - \hat{\varphi}_1 \gamma_F(h-1) - \dots - \hat{\varphi}_p \gamma_F(h-p) = \left \{ {{\sigma^2, h = 0} \atop {0, h = 1,\dots, p}} \right. Każdej niesingularnej macierzy \Gamma_p odpowiada proces AR(p). Niestety nie możemy stwierdzić w ogólności tego samego dla procesu MA(q).

Generalnie (czyli teoretycznie) rząd p nie jest nam znany, gdy zaczynamy dopasowywać dane do modelu AR(p). Jeżeli założymy, że prawdziwym rzędem modelu jest rząd p a zamierzamy dopasować model rzędu m to powinniśmy oczekiwać, że oszacowany estymator \bar{\varphi}_m = \bar{\varphi}_{m1}, \bar{\varphi}_{m2}, \dots, \bar{\varphi}_{mm}) wykaże dla indeksów większych od p niskie wartości \bar{\varphi}_{mm}.

Algorytm Durbina - Levinsona

Wiemy jak wstępnie oszacować parametry metodą Yule-Walkera

X_t - \varphi_{m1} X_{t-1} - \dots - \varphi_{mp} X_{t-m} = Z_t, ~~Z_t \sim BS(0, \sigma^2).

z odpowiednimi

\hat{\varphi}_m = (\hat{\varphi}_{m1}, \dots, \hat{\varphi}_{mm}) = \hat{R}^{-1}_m \hat{\rho}_m - predyktory \varphi_i,
\hat{v}_m = \hat{\gamma}(0) [1 - \hat{\rho'}_p \hat{R}^{-1}_p \hat{\rho}_p] - predyktor \sigma^2.
Algorytm Durbina - Levinsona 
pozwala na sukcesywne obliczanie kolejnych rzędów procesu AR.

Jeżeli \hat{\gamma}(0) > 0 to dla m = 1, 2, ..., n-1 możemy rekursywnie dopasować model AR

\hat{\varphi}_{11} = \hat{\rho}(1),\
\hat{v}_1 = \hat{\gamma}(0) [1 - \hat{\rho}^2(1)], \
\hat{\varphi}_{mm} = [\hat{\gamma}(m) - \sum_{j=1}^{m-1} \hat{\varphi}_{m-1,j} \hat{\gamma}(m-j)] / \hat{v}_{m-1},
\begin{bmatrix} \hat{\varphi}_{m1} \\ \vdots \\ \hat{\varphi}_{m,m-1}\end{bmatrix} = \hat{\bar{\varphi}} \begin{bmatrix} \rho(1) \\ \rho(2) \\ \rho(3) \\ \vdots \\ \rho(k)\end{bmatrix},
\hat{v}_m = \hat{v}_{m-1} (1 - \hat{\varphi}^2_{mm}).

Algorytm Burga

MA

Dla przypadków, gdy q > 0 metoda zaprezentowana wcześniej nie do końca zdaje egzamin. W tym przypadku posługujemy się algorytmem innowacyjnym.

Algorytm innowacyjny

ARMA

Rekurencyjny algorytm dopasowania ARMA

Estymacja modelem maximum Likelihood

Testy

AICC

Prognoza