Pojęcie procesu stacjonarnego Definicja 1. Procesem stochastycznym nazywamy rodzinę zmiennych (wektorów) losowych {Xt }t∈T określonych na tej samej przestrzeni probabilistycznej. Jeśli T ⊆ R, to indeks numerujący zmienne losowe często interpretuje się jako czas. Tak będzie w naszych rozważaniach. Dalej ograniczymy się do przypadku, gdy T = Z. Definicja 2. Proces stochastyczny {Xt }t∈Z nazywamy stacjonarnym (w węższym sensie), jeśli ∀ t1 , t2 , . . . , tk ∈ Z ∀h∈Z D (Xt1 +h , Xt2 +h , . . . , Xtk +h ) = (Xt1 , Xt2 , . . . , Xtk ). Przykładami procesów stacjonarnych są stacjonarne łańcuchy Markowa tzn. łańcuchy Markowa mające rozkład stacjonarny, dla których rozkładem początkowym jest ich rozkład stacjonarny. Definicja 3. Proces stochastyczny {Xt }t∈Z nazywamy stacjonarnym w szerszym sensie, gdy (i) dla każdego t ∈ Z istnieje EXt2 (tzn. gdy EXt2 < ∞), (ii) dla dowolnych s, t ∈ Z zachodzi EXs = EXt (tzn. wartość oczekiwana procesu jest stała w czasie), (iii) dla dowolnych s, t, h ∈ Z zachodzi Cov(Xs , Xs+h ) = Cov(Xt , Xt+h ) (tzn. kowariancja procesu w dwóch punktach czasu zależy jedynie od odległości między nimi). Fakt 1. Jeśli proces {Xt }t∈Z jest stacjonarny w szerszym sensie, to dla dowolnych s, t ∈ Z mamy V ar(Xs ) = V ar(Xt ) (tzn. wariancja procesu jest stała w czasie). Dowód. Wystarczy w punkcie (iii) definicji procesu stacjonarnego w szerszym sensie przyjąć h = 0. Fakt 2. (i) Proces {Xt } stacjonarny w węższym sensie, dla którego istnieje EXt2 , jest procesem stacjonarnym w szerszym sensie. (ii) Proces {Xt } stacjonarny w szerszym sensie, który jest gaussowski (tzn. taki że dla dowolnych t1 , t2 , . . . , tk ∈ Z wektor losowy (Xt1 , Xt2 , . . . , Xtk ) ma [wielowymiarowy] rozkład normalny), jest procesem stacjonarnym w węższym sensie. Punkt (ii) jest konsekwencją faktu, iż wielowymiarowy rozkład normalny jest w całości opisywany za pomocą wektora wartości oczekiwanych i macierzy kowariancji. Od tego momentu określenie proces stacjonarny zawsze będzie się odnosiło do procesu stacjonarnego w szerszym sensie. Skoro dla procesu stacjonarnego kowariancja procesu w dwóch punktach czasu zależy jedynie od odległości między nimi, to dla badania takiego procesu wprowadza się następującą wielkość: Definicja 4. Niech {Xt }t∈Z będzie procesem stacjonarnym. Funkcję γ : Z → R daną wzorem γ(h) = Cov(Xt , Xt+h ) = Cov(X0 , Xh ) nazywamy funkcją autokowariancji procesu {Xt }t∈Z . γ(h) będziemy nazywali autokowariancją rzędu h. Własności funkcji autokowariancji i autokorelacji Twierdzenie 1 (Własności funkcji autokowariancji). Funkcja autokowariancji γ procesu stacjonarnego ma następujące własności: (i) γ(0) ≥ 0, (ii) |γ(h)| ≤ γ(0) dla każdego h ∈ Z, (iii) γ(−h) = γ(h) dla każdego h ∈ Z. Dowód. (i) γ(0) = Cov(X0 , X0 ) = V ar(X0 ) ≥ 0. 1 (ii) wynika z nierówności Schwarza: dla dowolnych zmiennych losowych X i Y takich, że EX 2 i EY 2 istnieją, mamy p |Cov(X, Y )| ≤ V ar(X) · V ar(Y ). (iii) γ(−h) = Cov(X0 , X−h ) = Cov(X−h , X0 ) = Cov(X−h+h , X0+h ) = Cov(X0 , Xh ) = γ(h). Definicja 5. Niech {Xt }t∈Z będzie procesem stacjonarnym. Funkcję ρ : Z → R daną wzorem ρ(h) = Corr(X0 , Xh ) = p Cov(X0 , Xh ) V ar(X0 ) · V ar(Xh ) = Cov(X0 , Xh ) γ(h) = V ar(X0 ) γ(0) nazywamy funkcją autokorelacji procesu {Xt }t∈Z . ρ(h) będziemy nazywali autokorelacją rzędu h. Twierdzenie 2 (Własności funkcji autokorelacji). Funkcja autokorelacji ρ procesu stacjonarnego ma następujące własności: (i) ρ(0) = 1, (ii) |ρ(h)| ≤ 1 dla każdego h ∈ Z, (iii) ρ(−h) = ρ(h) dla każdego h ∈ Z. Procesy stacjonarne będziemy utożsamiali z ich wartością oczekiwaną i funkcją autokowiariancji. Innymi słowy: dwa procesy stacjonarne z taką samą wartością oczekiwaną i taką samą funkcją autokowariancji będą dla nas nierozróżnialne. Definicja 6. Funkcję κ : Z → R nazywamy nieujemnie określoną, jeżeli dla każdego n ∈ N+ , dla dowolnych a1 , a2 , . . . , an ∈ R i dowolnych t1 , t2 , . . . , tn ∈ Z zachodzi n X n X ai κ(ti − tj )aj ≥ 0 i=1 j=1 tzn. gdy dla każdego n ∈ N+ i dowolnych t1 , t2 , . . . , tn ∈ Z macierz M = (mij )ni,j=1 , gdzie mij = κ(ti −tj ), jest nieujemnie określona. Twierdzenie 3 (Charakteryzacja funkcji autokowariancji). Parzysta funkcja γ : Z → R jest funkcją autokowariancji pewnego procesu stacjonarnego wtedy i tylko wtedy, gdy jest nieujemnie określona. Dowód. Załóżmy, że funkcja γ : Z → R jest funkcją autokowariancji pewnego procesu stacjonarnego {Xt }t∈Z . Pokażemy, że jest nieujemnie określona. Weźmy dowolne t1 , t2 , . . . , tn ∈ Z. Wówczas γ(ti − tj ) = Cov(X0 , Xti −tj ) = Cov(X0+tj , X(ti −tj )+tj ) = Cov(Xtj , Xti ). Z tego wynika, że macierz Γ = (γ(ti − tj ))ni.j=1 jest macierzą kowariancji wektora losowego (Xt1 , Xt2 , . . . , Xtn )0 , a zatem jest nieujemnie określona. W takim razie funkcja γ jest nieujemnie określona. Z kolei jeśli mamy parzystą i nieujemnie określoną funkcję γ : Z → R, to zawsze można skonstruować proces gaussowski o wartości oczekiwanej 0 takiej funkcji autokowiariancji, gdyż wielowymiarowy rozkład normalny jest w całości opisywany za pomocą wektora wartości oczekiwanych i macierzy kowariancji. Aby pokazać, że jakaś funkcja jest funkcją autokowariancji pewnego procesu, często zamiast pokazywać, że jest nieujemnie określona, łatwiej jest skonstruować proces stacjonarny, którego jest funkcją autokowiariancji. Przykład 1 Funkcja γ(h) = σ 2 cos θh jest funkcją autokowariancji procesu stacjonarnego {Xt } postaci: Xt = A cos θt + B sin θt, gdzie A i B są nieskorelowanymi zmiennymi losowymi takimi że EA = EB = 0 i V ar(A) = V ar(B) = σ 2 , gdzie σ 2 jest ustaloną liczbą dodatnią zaś θ ustaloną liczbą rzeczywistą. 2 Aby się o tym przekonać, upewnijmy się najpierw, że proces {Xt } zdefiniowany j.w. jest stacjonarny. Ponieważ EA = EB = 0, więc EA2 = V ar(A) + (EA)2 = V ar(A) = σ 2 i EB 2 = V ar(B) + (EB)2 = V ar(B) = σ 2 . Mamy kolejno: EXt2 = E(A cos θt + B sin θt)2 = E(A2 cos2 θt + AB sin 2θt + B 2 sin2 θt) = = cos2 θtEA2 + sin 2θtEAEB + sin2 θtEB 2 = = cos2 θt · σ 2 + sin2 θt · σ 2 = (cos2 θt + sin2 θt)σ 2 = σ 2 < ∞, EXt = E(A cos θt + B sin θt) = cos θtEA + sin θtEB = cos θt · 0 + sin θt · 0 = 0 = const, Cov(Xt , Xt+h ) = = E(Xt − EXt )(Xt+h − EXt+h ) = EXt Xt+h = = E(A cos θt + B sin θt)(A cos θ(t + h) + B sin θ(t + h)) = = E[A2 cos θt cos θ(t + h) + AB(cos θt cos θ(t + h) + sin θt cos θ(t + h)) + B 2 sin θ(t + h) sin θt] = = cos θt cos θ(t + h)EA2 + EAEB(cos θt cos θ(t + h) + sin θt cos θ(t + h)) + sin θ(t + h) sin θtEB 2 = = cos θt cos θ(t + h) · σ 2 + sin θ(t + h) sin θt · σ 2 = [cos θt cos θ(t + h) + sin θ(t + h) sin θt]σ 2 = = cos(θ(t + h) − θt) · σ 2 = σ 2 cos θh Przykłady procesów stacjonarnych Przykład 2 Ciąg nieskorelowanych zmiennych losowych {Zt }t∈Z o tej samej wartości oczekiwanej µ i tej samej wariancji σ 2 nazywamy białym szumem i oznaczamy: {Zt } ∼ W N (µ, σ 2 ). Funkcje autokowariancji i autokorelacji białego szumu W N (µ, σ 2 ) mają postać: σ2 , h = 0 1, h = 0 γ(h) = , ρ(h) = . 0, h 6= 0 0, h 6= 0 Biały szum to cegiełki, z których zbudowanych jest wiele procesów stacjonarnych. Przykład 3 Ciąg niezależnych zmiennych losowych {Zt }t∈Z o jednakowym rozkładzie o wartości oczekiwanej µ i wariancji σ 2 nazywamy IID-szumem i oznaczamy: {Zt } ∼ IID(µ, σ 2 ). Funkcje autokowariancji i autokorelacji IID-szumu są takie same jak funkcje autokowariancji i autokorelacji białego szumu. IID-szum jest białym szumem, ale niekoniecznie biały szum jest IID-szumem. Jeśli {Zt } ∼ IID(µ, σ 2 ) i Zt ∼ N (µ, σ 2 ), t ∈ Z, to {Zt }t∈Z nazywamy gaussowskim białym szumem. Przykład 4 Proces {Xt }t∈Z postaci: Xt = Zt + θZt−1 , gdzie {Zt } ∼ W N (0, σ 2 ), przy czym θ ∈ R i σ 2 > 0 są ustalonymi liczbami, nazywamy procesem średniej ruchomej rzędu 1 i oznaczamy: {Xt } ∼ MA(1). Ponieważ EZt = 0, więc EZt2 = V ar(Zt ) + (EZt )2 = V ar(Zt ) = σ 2 . W takim razie EXt2 = 2 2 E(Zt + θZt−1 )2 = E(Zt2 + 2θZt Zt−1 + θ2 Zt−1 ) = EZt2 + 2θEZt EZt−1 + θ2 EZt−1 = = σ 2 + θ2 σ 2 = (1 + θ2 )σ 2 < ∞, EXt = E(Zt + θZt−1 ) = EZt + θEZt−1 = 0, 3 = E(Xt − EXt )(Xt+h − EXt+h ) = EXt Xt+h = E(Zt + θZt−1 )(Zt+h + θZt+h−1 ) = Cov(Xt , Xt+h ) = EZt Zt+h + θEZt Zt+h−1 + θEZt−1 Zt+h + θ2 EZt−1 Zt+h−1 . Dla h = 0 mamy: 2 Cov(Xt , Xt ) = EZt2 + 2θEZt EZt−1 + θ2 EZt−1 = (1 + θ2 )σ 2 . Dla h = 1 mamy: Cov(Xt , Xt+1 ) = EZt EZt+1 + θEZt2 + θEZt−1 EZt+h + θ2 EZt−1 EZt = θσ 2 . Dla h > 1 mamy: Cov(Xt , Xt+h ) = EZt EZt+h + θEZt EZt+h−1 + θEZt−1 EZt+h + θ2 EZt−1 EZt+h−1 = 0. Istnieje drugi moment procesu {Xt }, wartość oczekiwana jest stała w czasie a kowariancja procesu w dwóch punktach czasu zależy jedynie od odległości miedzy nimi, a zatem proces {Xt } jest stacjonarny. Jego funkcje autokowariancji i autokorelacji wyrażają się za pomocą następujących wzorów: (1 + θ2 )σ 2 , h = 0 γ(h) = θ2 σ2 , |h| = 1 , 0, |h| > 1 1, h=0 θ2 ρ(h) = , |h| = 1 1 + θ2 0, |h| > 1 (Uzupełnienia dla h < 0 dokonujemy w oparciu o parzystość funkcji autokowariancji i autokorelacji). Przykład 5 Proces {Xt }t∈Z postaci: Xt = Zt + θ1 Zt−1 + θ2 Zt−2 + . . . + θq Zt−q , gdzie {Zt } ∼ W N (0, σ 2 ), przy czym θ1 , θ2 , . . . , θq ∈ R i σ 2 > 0 są ustalonymi liczbami, nazywamy procesem średniej ruchomej rzędu q i oznaczamy: {Xt } ∼ MA(q). Jest on procesem stacjonarnym a jego funkcje autokowariancji i autokorelacji wyrażają się następująco: γ(h) = 2 Pq 2 σ j=0 θj , Pq−|h| σ 2 j=0 θj θj+h , 0, 1, h=0 Pq−|h| θθ i=0 Pq i 2i+h , 1 ≤ |h| ≤ q ρ(h) = j=0 θj 0, |h| > q h=0 1 ≤ |h| ≤ q , |h| > q Przykład 6 Jeśli proces stacjonarny {Xt }t∈Z jest postaci: Xt = φXt−1 + Zt , gdzie{Zt } ∼ W N (0, σ 2 ), przy czym φ ∈ R i σ 2 > 0 są ustalonymi liczbami, to nazywamy go procesem autoregresji rzędu 1 i oznaczamy: {Xt } ∼ AR(1). Można pokazać, że jeśli |φ| < 1, to proces spełniający powyższą zależność rekurencyjną jest stacjonarny. Wówczas jego funkcje autokowariancji i autokorelacji wyrażają się jako: γ(h) = σ2 φ|h| , 1 − φ2 4 ρ(h) = φ|h| . Funkcja autokorelacji cząstkowej Definicja 7. Funkcją autokorelacji cząstkowej procesu stacjonarnego {Xt }t∈Z nazywamy funkcję α : Z → R zdefiniowaną w następujący sposób: 0, h=0 α(h) = , φ , h 6= 0 h,h gdzie φh = (φh,1 , φh,2 , . . . , φh,h )0 jest rozwiązaniem równania Γh φh = γh , w którym Γh = (γ(i − j))hi,j=1 i γh = (γ(1), γ(2), . . . , γ(h))0 . α(h) będziemy nazywali autokorelacją cząstkową rzędu h. Intuicyjnie autokorelacja cząstkowa rzędu h mierzy stopień liniowej zależności między X0 i Xh po wyeliminowaniu liniowego wpływu zmiennych losowych X1 , X2 , . . . , Xh−1 dla h > 0 lub zmiennych losowych Xh+1 , Xh+2 , . . . , X−1 dla h < 0. Procesy liniowe Dużą klasę procesów stacjonarnych można zbudować z kombinacji liniowych białego szumu. Procesy te nazywają się procesami liniowymi. Definicja 8. Proces stochastyczny {Xt }t∈Z postaci Xt = ∞ X ψj Zt−j , j=−∞ P∞ gdzie {Zt } ∼ W N (0, σ 2 ) i j=−∞ |ψj | < ∞, nazywamy procesem liniowym. Zbieżność w definicji (jeśli faktycznie mamy do czynienia z nieskończoną liczbą składników) będziemy interpretowali jako zbieżność z prawdopodobieństwem 1. P∞ W tym miejscu należałoby wykazać, że warunek j=−∞ |ψj | < ∞ jest wystarczający do tego, aby P∞ zbieżność j=−∞ ψj Zt−j zachodziła z prawdopodobieństwem 1, jednak pominiemy ten dowód. Twierdzenie 4. Proces liniowy przy oznaczeniach jak w powyższej definicji jest procesem stacjonarnym o wartości oczekiwanej 0 i funkcji autokowariancji postaci: γ(h) = σ 2 ∞ X ψj ψj+h . j=−∞ Dowód. Zanim przystąpimy do właściwego dowodu, zwróćmy uwagę, że E|Zt | < ∞ i EZt2 = V ar(Zt ) + (EZt )2 = V ar(Zt ) + 0 = V ar(Zt ) = σ 2 . Co więcej, ponieważ 2ab ≤ a2 + b2 , więc dla dowolnych k, l ∈ Z mamy 2E|Zk ||Zl | ≤ E(Zk2 + Zl2 ) = EZk2 + EZl2 = σ 2 + σ 2 = 2σ 2 , a zatem E|Zk ||Zl | ≤ σ 2 . Najpierw pokażemy, że wartość oczekiwana Xt istnieje: X ∞ ∞ ∞ X X ∞ ? X E|Xt | = E ψj Zt−j ≤ E |ψj | · |Zt−j | ≤ |ψj | · E|Zt−j | = E|Z0 | · |ψj | < ∞. j=−∞ j=−∞ j=−∞ j=−∞ W miejscu oznaczonym gwiazdką skorzystaliśmy z lematu Fatou. W takim razie możemy skorzystać z twierdzenia Lebesgue’a o zbieżności ograniczonej (zmajoryzowanej): EXt = E ∞ X j=−∞ ψj Zt−j = ∞ X j=−∞ ψj · EZt−j = ∞ X ψj · 0 = 0. j=−∞ W następnej kolejności wykażemy, że EXt2 istnieje: ! ! ∞ ∞ ∞ ∞ X X X X 2 2 ψi Zt−i · ψj Zt−j = E ψi ψj Zt−i Zt−j ≤ EXt = E|Xt | = E i=−∞ i=−∞ j=−∞ j=−∞ 5 ≤E ∞ X ∞ X ∞ X ? |ψi ||ψj ||Zt−i ||Zt−j | ≤ i=−∞ j=−∞ ≤ ∞ X ∞ X |ψi ||ψj | · E|Zt−i ||Zt−j | ≤ i=−∞ j=−∞ ∞ X 2 |ψi ||ψj | · σ = σ ∞ X 2 i=−∞ j=−∞ ! |ψi | · i=−∞ ∞ X ! |ψj | < ∞. j=−∞ W miejscu oznaczonym gwiazdką ponownie skorzystaliśmy z lematu Fatou. Skoro istnieje drugi moment zmiennej losowej Xt , to w poniższym rachunku możemy zamienić kolejność wartości oczekiwanej i sumy, ponownie korzystając z twierdzenia Lebesgue’a o zbieżności ograniczonej (zmajoryzowanej): Cov(Xt , Xt+h ) = E(Xt − EXt )(Xt+h − EXt+h ) = EXt Xt+h = |{z} | {z } 0 =E ∞ X ψi Zt−i · i=−∞ = ∞ X ∞ X ∞ X ! 0 ψj Zt+h−j =E j=−∞ ψi ψj · EZt−i Zt+h−j = ∞ X ! = ∞ X ψi ψj Zt−i Zt+h−j = i=−∞ j=−∞ XX ψi ψj · EZt−i Zt+h−j + −i=h−j i=−∞ j=−∞ ∞ X XX −i6=h−j ∞ X 2 ψi ψi+h · EZt−i = i=−∞ ψi ψi+h · σ 2 = σ 2 i=−∞ ∞ X ψi ψj · EZt−i Zt+h−j = {z } | =EZt−i EZt+h−j =0 ψi ψi+h . i=−∞ Powyższe twierdzenie jest szczególnym przypadkiem nieco ogólniejszego faktu, który można udowodnić w sposób analogiczny do powyższego. Twierdzenie 5. Niech {Xt }t∈Z będzie procesem stacjonarnym o wartości oczekiwanej µX i funkcji autokowariancji γX . Wówczas proces {Yt }t∈Z zdefiniowany jako Yt = ∞ X ψj Xt−j j=−∞ jest procesem stacjonarnym o wartości oczekiwanej µY i funkcji autokowariancji γY zadymi jako µY = µX ∞ X ψj i γY (h) = ∞ X ∞ X ψi ψj γX (i − j + h). i=−∞ j=−∞ j=−∞ Procesy ARMA Definicja 9. Procesem autoregresji rzędu p i średniej ruchomej rzędu q (w skrócie: ARMA(p,q)) nazywamy proces stacjonarny {Xt }t∈Z będący rozwiązaniem równania Xt = φ1 Xt−1 +φ2 Xt−2 +. . .+φp Xt−p +Zt +θ1 Zt−1 +θ2 Zt−2 +. . .+θq Zt−q , gdzie {Zt } ∼ W N (0, σ 2 ), (1) przy czym φ1 , φ2 , . . . , φp , θ1 , θ2 , . . . , θq ∈ R i σ 2 > 0 są ustalonymi liczbami (co oznaczamy: {Xt } ∼ ARM A(p, q)). Równanie (1) można zapisać jako: Xt −φ1 Xt−1 −φ2 Xt−2 −. . .−φp Xt−p = Zt +θ1 Zt−1 +θ2 Zt−2 +. . .+θq Zt−q , gdzie {Zt } ∼ W N (0, σ 2 ). (2) Niech B oznacza operator cofnięcia o 1 tzn. Bxt = xt−1 , B 2 xt = xt−2 , B 3 xt = xt−3 itd. Niech Φ(s) = 1 − φ1 s − φ2 s2 − . . . − φp sp i Θ(s) = 1 + θ1 s + θ2 s2 + . . . + θp sq . Korzystając z tych oznaczeń, możemy zapisać równanie (2) jako: Φ(B)Xt = Θ(B)Zt , gdzie {Zt } ∼ W N (0, σ 2 ). (3) Wielomiany Φ i Θ noszą nazwy odpowiednio wielomianu autoregresji i wielomianu średniej ruchomej. Stopień wielomianu autoregresji wynosi p zaś stopień wielomianu średniej ruchomej wynosi q. Szczególnymi przykładami procesów ARMA są: 6 proces autoregresji (ang. autoregression) rzędu p zdefiniowany jako proces stacjonarny będący rozwiązaniem równania: Xt = φ1 Xt−1 + φ2 Xt−2 + . . . + φp Xt−p + Zt czyli Φ(B)Xt = Zt , gdzie {Zt } ∼ W N (0, σ 2 ), tzn. proces ARMA(p,0), który oznaczamy krótko: AR(p), proces średniej ruchomej (ang. moving average) rzędu q zdefiniowany jako proces będący rozwiązaniem równania: Xt = Zt + θ1 Zt−1 + θ2 Zt−2 + . . . + θq Zt−q czyli Xt = Θ(B)Zt , gdzie {Zt } ∼ W N (0, σ 2 ), (4) tzn. proces ARMA(0,q), który oznaczamy krótko: MA(q). Należy przypomnieć, że proces stanowiący rozwiązanie równania (4) zawsze jest procesem stacjonarnym. Ponadto z samej postaci równania (4) wynika, że proces średniej ruchomej jest procesem liniowym. Przypomnijmy również, że dla procesu MA(q) mamy ρ(h) = 0 dla |h| > q. Z kolei dla procesu AR(p) mamy α(h) = 0 dla |h| > p. W tym momencie należy postawić trzy ważne pytania: Problem stacjonarności: Czy dowolny proces będący rozwiązaniem równania (1) jest procesem stacjonarnym? Problem wynikowości: Czy rozwiązanie {Xt }t∈Z równania (1) jest skorelowane tylko z przeszłością białego szumu a nie z jego przyszłością tzn. czy Cov(Xt , Zs ) = 0 dla s > t? Problem odwracalności: Czy jeśli {Xt }t∈Z jest rozwiązaniem równania (1), to Zt można przedstawić jako liniową funkcję Xt , Xt−1 , Xt−2 , . . . ? Proces spełniający drugi postulat nazywamy procesem wynikowym. Proces spełniający trzeci postulat nazywamy procesem odwracalnym. Twierdzenie 6. (i) Jeżeli wszystkie pierwiastki wielomianu Φ leżą poza okręgiem |s| = 1, to pewien proces liniowy {Xt }t∈Z postaci ∞ X Xt = ψj Zt−j , gdzie {Zt } ∼ W N (0, σ 2 ), (5) j=−∞ jest jedynym stacjonarnym rozwiązaniem równania (1). (ii) Jeżeli wszystkie pierwiastki wielomianu Φ leżą poza kołem |s| ≤ 1, to stacjonarne rozwiązanie równania (1) jest procesem wynikowym. (iii) Jeżeli wszystkie pierwiastki wielomianu Θ leżą poza kołem |s| ≤ 1, to proces {Xt }t∈Z zdefiniowany w (5) jest odwracalny. Charakterystyki próbkowe procesów stacjonarnych Zakładamy, że proces stacjonarny {Xt }t∈Z obserwujemy w chwilach t = 1, 2, . . . , n tzn. mamy dane zmienne losowe X1 , X2 , . . . , Xn . Realizację procesu stochastycznego indeksowanego dyskretnym czasem nazywamy szeregiem czasowym. Możemy więc powiedzieć, że mamy dany stacjonarny szereg czasowy X1 , X2 , . . . , Xn . Średnią próbkową procesu będziemy nazywali statystykę n X= 1X Xj . n j=1 Fakt 3. X jest nieobciążonym estymatorem wartości oczekiwanej procesu stacjonarnego. 7 Autokowariancją próbkową rzędu h będziemy nazywali statystykę γ̂(h) = n−h 1 X (Xj − X)(Xj+h − X), n j=1 0 ≤ h ≤ n, −n ≤ h ≤ 0. γ̂(h) = γ̂(−h), Autokorejacją próbkową rzędu h będziemy nazywali statystykę ρ̂(h) = γ̂(h) , γ̂(0) −n ≤ h ≤ n. Losowe funkcje γ̂ : {−n, . . . , −2, −1, 0, 1, 2, . . . , n} → R i ρ̂ : Z → R będziemy nazywali odpowiednio próbkową funkcją autokowariancji i próbkową funkcją autokorelacji. Zwróćmy uwagę, że jeśli h jest bliskie n lub −n, to suma występująca w definicji γ̂(h) składa się z niewielu składników, więc można się spodziewać słabej jakości estymacji γ(h) i ρ(h) poprzez ρ̂(h) i ρ̂(h), dlatego też nie wykorzystuje się γ̂(h) i ρ̂(h) dla h bliskich n lub −n, choć formalnie można je obliczyć. W literaturze można się także spotkać z dzieleniem przez n − h w miejsce dzielenia przez n przy obliczaniu autokowariancji próbkowej rzędu h, jednak dzielenie przez n zapewnia nieujemną określoność funkcji γ̂. Definicje autokowariancji próbkowej i autokorelacji próbkowej zachowują sens także w przypadku procesów niestacjonarnych. Wielkości te mogą być użyte do wykrywania niestacjonarności oraz możliwych jej przyczyn. P∞ Twierdzenie 7. Niech {Xt }t∈Z będzie procesem stacjonarnym takim że Xt = j=−∞ ψj Zt−j , gdzie P∞ P∞ 2 4 2 {Zt } ∼ IID(0, σ ) oraz j=−∞ |ψj | < ∞ i EZj < ∞ (lub j=−∞ ψj |j| < ∞). Ustalmy k ≥ 1. Niech ρk = (ρ(1), ρ(2), . . . , ρ(k)) i ρ̂k = (ρ̂(1), ρ̂(2), . . . , ρ̂(k)). Wówczas √ D n(ρ̂k − ρk ) −−−−→ N (0, W ), n→∞ gdzie W = (wij )ki,j=1 i wij = P∞ l=1 [ρ(l + i) + ρ(l − i) − 2ρ(l)ρ(i)] · [ρ(l + j) + ρ(l − j) − 2ρ(l)ρ(j)]. Wniosek 1. Niech {Xt }∼ IID(0, σ 2 ). Ustalmy k ≥ 1. Niech ρk = (ρ(1), ρ(2), . . . , ρ(k)) i ρ̂k = (ρ̂(1), ρ̂(2), . . . , ρ̂(k)). Wówczas √ D n(ρ̂k − ρk ) −−−−→ N (0, I). n→∞ Wniosek 2. Niech {Xt } ∼ IID(0, σ 2 ). Wówczas dla każdego h ≥ 1 √ D n ρ̂(h) −−−−→ N (0, 1). n→∞ W szczególności dla każdego α ∈ (0, 21 ) mamy lim P n→∞ √ n |ρ̂(h)| ≥ Φ −1 α 1− = lim P n→∞ 2 1 −1 α |ρ̂(h)| ≥ √ Φ 1− = α. 2 n Powyższy fakt jest wykorzystywany przy sporządzaniu standardowych wykresów próbkowej funkcji autokorelacji. Za pomocą słupków są na nich zaznaczone liczby ρ̂(h), natomiast promień zaznaczonego pasa wokół zera wynosi √1n Φ−1 1 − α2 . Z pomocą takiego rysunku łatwo można przeprowadzić test hipotezy H : ρ(h) = 0 przeciwko K : ρ(h) 6= 0. Jeśli słupek wychodzi poza zaznaczony pas, to przyjmujemy K; jeśli nie, to stwierdzamy, że brak jest podstaw do odrzucenia H na rzecz K. Cząstkową autokorelacją próbkową rzędu h będziemy nazywali statystykę zdefiniowaną w następujący sposób: 0, h=0 α̂(h) = , φ , 1 ≤ |h| ≤ n h,h gdzie φh = (φh,1 , φh,2 , . . . , φh,h )0 jest rozwiązaniem równania Γ̂h φh = γ̂h , w którym Γ̂h = (γ̂(i − j))hi,j=1 i γ̂h = (γ̂(1), γ̂(2), . . . , γ̂(h))0 . 8 Losową funkcję α̂ : {−n, . . . , −2, −1, 0, 1, 2, . . . , n} → R będziemy nazywali próbkową funkcją autokorelacji cząstkowej. Podobnie jak w przypadku próbkowej funkcji autokowariancji i próbkowej funkcji autokorelacji estymacja α(h) poprzez α̂(h) dla h bliskich n lub −n jest słabej jakości, więc w praktyce nie posługujemy się α̂(h) dla takich h. O próbkowej funkcji autokorelacji cząstkowej można udowodnić twierdzenie graniczne podobne do tego dotyczącego próbkowej funkcji autokorelacji. W podobny sposób można je wykorzystać do konstrukcji testu dla testowania hipotezy o tym, że dla ustalonego h zachodzi α(h) = 0 przeciwko hipotezie głoszącej, że α(h) 6= 0. Estymacja trendu i sezonowości Będziemy zakładali, że obserwujemy proces stochastyczny {Xt }t∈Z postaci: Xt = mt + st + et , gdzie {mt } nazywamy trendem i jest to funkcja deterministyczna, {st } nazywamy składnikiem sezonowym lub krótko: sezonowością PT i jest to deterministyczna funkcja okresowa, która ma tę własność, że jeśli T jest jej okresem, to j=1 sj = 0, zaś {et } jest procesem stacjonarnym. Model w takiej postaci nazywamy addytywnym modelem szeregu czasowego. Możliwe są modele, w których st ≡ 0 (wówczas mówimy o modelu bez składnika sezonowego) lub w których mt ≡ 0 (wówczas mówimy o modelu bez trendu). Inną spotykaną postacią modelu jest następująca: Xt = mt · st · et , QT gdzie mt , st , et > 0 a ponadto jeśli T jest okresem czynnika sezonowego, to j=1 sj = 1. Model taki nazywamy multiplikatywnym modelem szeregu czasowego. Model multiplikatywny łatwo sprowadzić do modelu addytywnego przez zlogarytmowanie, stąd nie będziemy rozważać modelu multiplikatywnego. Niekiedy bywają rozważane także inne modele szeregów czasowych, ale nie będziemy o nich mówić, bowiem model addytywny (i ewentualnie model multiplikatywnym) wydają się być najczęściej stosowane. Analizę danych indeksowanych czasem warto rozpocząć od narysowania wykresu ich przebiegu. Jeśli trend jest rosnący i wraz z czasem rośnie też rozrzut danych wokół trendu, warto spróbować ustabilizować ten rozrzut, nakładając na dane przekształcenie z rodziny Boxa-Coxa. (To najczęściej spotykana sytuacja, w której przekształcenia Boxa-Coxa mogą się przydać, jednak nie wyczerpuje ona wszystkich możliwości). Naszym zadaniem będzie wyznaczenie estymatorów funkcji {mt } i {st } oraz znalezienie probabilistycznej struktury procesu {et }. Zadanie to nazywany estymacją szeregu czasowego. Filtry liniowe Definicja 10. Przekształcenie postaci: Yt = s X aj Xt−j , r, s ≥ 0 (6) j=−r nazywamy filtrem liniowym. W R do nakładania filtrów liniowych na dane służy funkcja filter. Szczególną uwagę należy zwrócić na dwa filtry liniowe najczęściej używane w estymacji szeregów czasowych. a) Średnią ruchomą rzędu d nazywamy filtr postaci: Yt = 1 (Xt−q + Xt−q+1 + . . . + Xt+q−1 + Xt+q ), 2q + 1 jeśli d = 2q + 1 (czyli d jest nieparzyste) lub 1 1 1 Yt = Xt−q + Xt−q+1 + . . . + Xt+q−1 + Xt+q , 2q 2 2 jeśli d = 2q (czyli d jest parzyste). 9 q < t ≤ n − q, q < t ≤ n − q, Średnia ruchoma rzędu d jest zatem filtrem liniowym postaci (6). Jeśli d = 2q + 1, to r = s = q 1 1 1 1 1 i (a−q , a−q+1 , . . . , a0 , . . . , aq−1 , aq ) = , ,..., ,..., , . Jeśli d = 2q, to 2q + 1 2q + 1 2q + 1 2q + 1 2q+ 1 1 1 1 1 1 r = s = q i (a−q , a−q+1 , . . . , a0 , . . . , aq−1 , aq ) = , ,..., ,..., , . 2 · 2q 2q 2q 2q 2 · 2q Średnia ruchoma nie zniekształca trendu liniowego natomiast średnia ruchoma o rzędzie równym długości okresu składnika sezonowego pozwala usunąć składnik sezonowy tzn. jeśli Xt = mt + st + et , mt = at + b i sT +t = st , to dla T = 2q + 1 mamy 1 (Xt−q + Xt−q+1 + . . . + Xt+q−1 + Xt+q ) = 2q + 1 = 1 h a ((t − q) + (t − q + 1) + . . . + t + · · · + (t + q − 1) + (t + q)) +(2q + 1)b+ {z } 2q + 1 | (2q+1)t i + (st−q + st−q+1 + . . . + st+q−1 + st+q ) +(et−q + et−q+1 + . . . + et+q−1 + et+q ) = | {z } 0 at + b + 1 (et−q + et−q+1 + . . . + et+q−1 + et+q ), 2q + 1 dla T = 2q mamy 1 2q 1 1 Xt−q + Xt−q+1 + . . . + Xt+q−1 + Xt+q 2 2 q < t ≤ n − q, = " 1 1 1 a (t − q) + (t − q + 1) + . . . + t + · · · + (t + q − 1) + (t + q) +2qb+ = 2q 2 2 | {z } 2qt + (st−q + st−q+1 + . . . + st+q−1 + st+q ) + {z } | 1 1 et−q + et−q+1 + . . . + et+q−1 + et+q 2 2 # = 0 1 at + b + 2q 1 1 et−q + et−q+1 + . . . + et+q−1 + et+q , 2 2 q < t ≤ n − q. W R średnią ruchomą można zrealizować za pomocą wyżej wspomnianej funkcji filter. Jej argument filter zawiera wektor (a−q , a−q+1 , . . . , a0 , . . . , aq−1 , aq ) z wcześniejszego opisu. b) Różnicowaniem z krokiem h > 0 nazywamy filtr liniowy postaci: Yt = Xt − Xt−h , t > h. Różnicowanie z dowolnym krokiem h > 0 pozwala na usunięcie trendu liniowego tzn. jeśli Xt = mt +et i mt = at + b, to Xt − Xt−h = a(t − (t + h)) + (et − et−h ) = ah + (et − et−h ), h < t ≤ n. Jeśli dodatkowo założymy, że w modelu występuje składnik sezonowy o okresie T , to różnicowanie z krokiem T pozwala na usunięcie składnika sezonowego tzn. jeśli Xt = mt + et , mt = at + b i sT +t = st , to Xt − Xt−T = a(t − (t − T )) + (st − st−T ) +(et − et−T ) = aT + (et − et−T ), {z } | T < t ≤ n. 0 Różnicowanie krokiem 1 ma bardzo klarowną interpretację: pozwala obliczyć przyrost obserwowanego zjawiska między kolejnymi momentami pomiaru np. jeśli dane są gromadzone w odstępach jednego dnia, różnicowanie krokiem 1 pozwala obliczyć przyrost dzienny. Również różnicowanie danych o charakterze okresowym krokiem równym długości okresu ma klarowną interpretację, bowiem pozwala obliczyć przyrost obserwowanego zjawiska w danym momencie okresu z jednego okresu na drugi np. jeśli gromadzone są dane miesięczne i zjawisko wykazuje roczną okresowość, różnicowanie krokiem 12 pozwala obliczyć przyrost obserwowanego zjawiska w danym miesiącu rok do roku. 10 W R różnicowanie można przeprowadzić za pomocą funkcji diff. Argument lag oznacza krok (domyślnie 1), natomiast jeśli chcemy różnicowanie złożyć kilka razy ze sobą, liczbę iteracji różnicowania podajemy w argumencie differences (domyślnie 1). Operację odwrotną do różnicowania wykonuje funkcja diffinv o podobnych argumentach. Stosując średnią ruchomą jak i różnicując proces stacjonarny {et }, otrzymujemy proces stacjonarny (patrz: twierdzenie 5). Estymacja trendu Zakładamy, że mamy do czynienia z danymi postaci: Xt = mt + st + et lub Xt = mt + et . Naszym celem będzie estymacja trendu mt . T1. Trend możemy dopasować za pomocą metody najmniejszych kwadratów. Dla przykładu dopasowanie trendu wielomianowego stopnia k sprowadza się do estymacji za pomocą metody najmniejszych kwadratów parametrów modelu liniowego o wektorze zmiennych objaśnianych i macierzy planu postaci odpowiedni: X1 X2 .. . Xn i 1 1 . . . 1 1 12 ... 2 22 ... ... ... ... n n2 ... 1k 2k . . . . nk Dzięki takiemu podejściu otrzymamy analityczną postać estymatora trendu tzn. wzór a nie tylko wartości. Metoda wymaga jednak wstępnego określenia, wśród jakiej parametrycznej rodziny krzywych poszukujemy estymatora trendu. Powyższą macierz można łatwo wygenerować za pomocą funkcji poly. Jako argument x podajemy jej zakres czasu, jako degree stopień wielomianu. Oprócz tego przyjmujemy jeszcze raw=TRUE (domyślna wartość do FALSE) – w przeciwnym razie nie otrzymamy wielomianów postaci 1, x, x2 , x3 itd., ale pewien układ wielomianów ortogonalnych. T2. Jako estymator trendu możemy także przyjąć wynik działania na danych średniej ruchomej, przy czym jeśli rozważamy model bez składnika sezonowego, to możemy posłużyć się średnią ruchomą dowolnego rzędu, natomiast jeśli rozważamy model ze składnikiem sezonowym, to musimy się posłużyć średnią ruchomą o rzędzie równym okresowi składnika sezonowego. Stosując średnią ruchomą w celu estymacji trendu, nie otrzymujemy analitycznej postaci estymatora, a jedynie jego wartości. Poza tym stosując średnią ruchomą rzędu h, estymacji możemy dokonać tylko dla h < t ≤ n − h. W kontekście estymacji trendu działanie średniej ruchomej bywa określanie jako wygładzanie (mówimy o wygładzaniu danych za pomocą średniej ruchomej, inną popularną metodą jest wygładzanie wykładnicze – tutaj nie będziemy go omawiać). Oczekujemy zatem, aby estymator trendu uzyskany w ten sposób był odpowiednio gładki (oczywiście w sensie potocznym, gdyż dla danych dyskretnych nie może być mowy o gładkości w sensie analitycznym). T3. Jeśli rozważamy model ze składnikiem sezonowym i możemy uznać, że trend jest stały na każdym okresie, to za estymator trendu na danym okresie możemy przyjąć średnią arytmetyczną obserwacji na tym okresie. Przy takiej estymacji trendu nie otrzymujemy jego analitycznej postaci a jedynie wartości. Dodatkowo należy zauważyć, że dość naturalnym jest założenie, iż trend ma w miarę ciągły przebieg (nie możemy mówić w sensie ścisłym o ciągłości, ponieważ obserwacji dokonujemy w czasie dyskretnym), co powoduje, że jeśli założymy, że trend jest stały na każdym okresie, to zmienność trendu jest dość mała. Po dokonaniu estymacji trendu możemy odjąć estymator trendu od obserwacji. O tym kroku popularnie mówi się, że usuwamy trend. Należy pamiętać, że jeśli posłużyliśmy się metodą T2, to uzyskamy w ten sposób wartości tylko dla h < t ≤ n − h. Jeśli w danych obecny jest trend ale nie wykazują one sezonowej struktury, zamiast dokonywania estymacji trendu możemy postąpić jeszcze inaczej: możemy usunąć go poprzez jednokrotne (trend liniowy) lub wielokrotne różnicowanie krokiem 1. Jak to już wcześniej powiedziano, różnicowanie krokiem 11 1 ma bardzo klarowną interpretcję: pozwala obliczyć przyrost obserwowanego zjawiska między kolejnymi momentami pomiaru np. jeśli dane są gromadzone w odstępach jednego dnia, różnicowanie krokiem 1 pozwala obliczyć przyrost dzienny. (O usuwaniu trendu za pomocą średniej ruchomej patrz dalej: procesy ARIMA). Estymacja sezonowości Oprócz oceny „na oko” na podstawie wykresu danych, że w danych występuje składnik sezonowy i, jeśli tak, ile wynosi jego okres, możemy też spojrzeć na wykres próbkowej funkcji autokorelacji (autokowariancji) – jeśli występuje składnik sezonowy, to funkcja ta zachowuje się okresowo. Istnieją bardziej profesjonalne narzędzia służące do wykrywania obecności składnika sezonowego i rozpoznawania długości jego okresu. Są one częścią spektralnej teorii szeregów czasowych (nieobecnej na tym wykładzie). Dalsze postępowanie zakłada, że wiemy, iż składnik sezonowy jest obecny i ile wynosi jego okres. Jeśli mamy do czynienia z danymi, z których usunęliśmy trend bądź brak jest trendu, ale występuje w nich sezonowość, to estymacja składnika sezonowego może przebiegać na jeden z poniższych sposobów: S1. Pamiętając, że każdą funkcję okresową można w sposób jednostajny przybliżyć wielomianem trygonometrycznym, możemy przyjąć, że składowa sezonowa o okresie T jest wielomianem trygonometrycznym pewnego stopnia k postaci: st = a0 + k X 2πj 2πj t + bj sin t . aj cos T T j=1 Współczynniki a0 , a1 , a2 , . . . , ak , b1 , b2 , . . . , bk estymujemy za pomocą metody tzn. posługujemy się macierzą planu postaci: 1 sin 2π sin 2π·2 ... sin 2π·k cos 2π cos 2π·2 T T T T T 2π·2 2π·k 2π 2π·2 1 sin 2 · 2π sin 2 · . . . sin 2 · cos 2 · cos 2 · T T T T T . . . ... ... ... ... ... ... 2π 2π·2 2π·k 2π 1 sin n · T sin n · T . . . sin n · T cos n · T cos n · 2π·2 T najmniejszych kwadratów ... ... cos 2π·k T cos 2 · 2π·k T ... ... ... cos n · 2π·k T W ten sposób otrzymamy analityczną postać estymatora sezonowości tzn. wzór a nie tylko wartości. Metoda wymaga jednak podania stopnia wielomianu trygonometrycznego, za pomocą którego będziemy modelowali sezonowość. W R do skonstruowania powyższej macierzy można użyć funkcji harmonic z pakietu tsModel. Jej kolejne argumenty oznaczają: x – zakres czasu, nfreq – stopień dopasowywanego wielomianu trygonometrycznego (czyli k), period – okres (czyli T ), intercept – wartość logiczna mówiąca, czy w macierzy ma być umieszczona kolumna jedynek. Trzeba być ostrożnym, aby nie zbudować macierzy planu o liniowo zależnych kolumnach. Jeśli taka sytuacja będzie miała miejsce, z macierzy postaci jak wyżej należy usunąć odpowiednie kolumny, tak aby nie zmieniając przestrzeni, na którą odbędzie się rzutowanie, pozostawić układ liniowo niezależnych kolumn. S2. Obliczamy liczby w1 , w2 , . . . , wT w takim sposób, że wi jest średnią arytmetyczną obserwacji w dostępnych punktach postaci i + kT , k ∈ Z. Wówczas przyjmujemy ŝi = wi − 1 (w1 + w2 + . . . + wT ), T i = 1, 2, . . . , T i przedłużamy okresowo {si } na t = T + 1, T + 2, . . . , n. Postępując w sposób powyższy, nie otrzymujemy analitycznej postaci estymatora składowej sezonowej, a jedynie jego wartości. Po dokonaniu estymacji sezonowości możemy odjąć estymator składnika sezonowego od obserwacji (wcześniej pozbawionych trendu). O tym kroku popularnie mówi się, że usuwamy sezonowość. Należy jeszcze dodać, że dla danych z liniowym trendem (lub bez trendu) i sezonowością możemy najpierw starać się usunąć składnik sezonowy bez jego estymacji. Dokonamy tego poprzez różnicowanie 12 danych krokiem równym długości okresu składnika sezonowego (por. rachunek dotyczący różnicowania). Różnicowanie danych o charakterze okresowym krokiem równym długości okresu ma, jak wcześniej wspomniano, klarowną interpretację, bowiem pozwala obliczyć przyrost obserwowanego zjawiska w danym momencie okresu z jednego okresu na drugi np. jeśli gromadzone są dane miesięczne i zjawisko wykazuje roczną okresowość, różnicowanie krokiem 12 pozwala obliczyć przyrost obserwowanego zjawiska w danym miesiącu rok do roku. Należy przy tym pamiętać, że otrzymamy wówczas wartości w zakresie czasu o jeden okres krótszym od danych wejściowych. Potem możemy np. przejść do estymacji trendu za pomocą jednej z metod podanych wcześniej, dopasowania modelu stacjonarnego, jeśli w danych nie ma już trendu, lub też – jeśli jest trend – do dopasowania procesu ARIMA (patrz danej). W wyniku usuwania trendu i sezonowości chcemy otrzymać dane, które mogą stanowić realizację procesu stacjonarnego (niekoniecznie takiego jak wyjściowy {et }), w szczególności nie zawierają one trendu ani sezonowości. Następnie do tych danych dopasowujemy jakiś znany nam model procesu stacjonarnego. Funkcja decompose w R dokonuje estymacji trendu za pomocą metody T2 i następnie po usunięciu trendu dokonuje estymacji sezonowości za pomocą metody S2. Jako argument funkcji decompose musimy podać obiekt klasy "ts" służący w R do reprezentowania szeregu czasowego. Obiekt taki tworzymy za pomocą funkcji ts. Innymi jako argument funkcji decompose musimy podać wartość funkcji ts na danych. Argument frequency tej funkcji oznacza długość okresu. Funkcji decompose działa jedynie wtedy, gdy jako frequency podano liczbę większą od 1 i w danych mieszą się przynajmniej dwa okresy. W szczególności za pomocą funkcji decompose nie da się przeprowadzić estymacji i eliminacji trendu dla danych pozbawionych składnika sezonowego. Wartość random funkcji decompose to dane po usunięciu trendu i sezonowości. Metody T1 i S1 można połączyć, od razu przybliżając dane sumą wielomianu i wielomianu trygonometrycznego, co odpowiada połączeniu obu macierzy planu. Bardziej zaawansowane metody dopasowania trendu i sezonowości oparte na tzw. lokalnym wygładzaniu w R można zrealizować np. za pomocą funkcji stl. Dopasowanie modelu ARMA do danych Do danych, które potencjalnie przedstawiają się jako realizacja procesu stacjonarnego, możemy próbować dopasować proces ARMA. Podstawowym narzędziem diagnostycznym będą tu wykresy próbkowej funkcji autokorelacji i próbkowej funkcji autokorelacji cząstkowej wraz z zaznaczonymi na nich pasami wokół osi OX, które pozwalają na odczytywanie wyników testów hipotez mówiących o zerowaniu się autokorelacji i autokorelacji próbkowej poszczególnych rzędów. W R do narysowania próbkowej funkcji autokorelacji wraz z odpowiednim pasem wokół osi OX służy funkcja acf. (Jeśli w funkcji acf zrezygnujemy z domyślnej wartości type="correlation" na rzecz type="covariance", to otrzymamy wykres próbkowej funkcji autokowariancji, jednak bez jakiegokolwiek pasa wokół osi OX służącego do testowania). Do narysowania próbkowej funkcji autokorelacji wraz z odpowiednim pasem wokół osi OX służy funkcja pacf. Wykres danych, próbkowej funkcji autokorelacji i próbkowej funkcji autokorelacji cząstkowej można narysować jednocześnie za pomocą funkcji tsdisplay z pakietu forecast. Przypomnijmy, że dla procesu MA(q) funkcja autokorelacji zeruje się dla argumentów co do wartości bezwzględnej przekraczających q, a zatem jeśli dla argumentów co do wartości bezwzględnej przekraczających q próbkowa funkcja autokorelacji mieści się w pasie wokół zera, to możemy próbować dopasować do danych proces średniej ruchomej (rzędu co najwyżej q). Przypomnijmy też, że dla procesu AR(p) funkcja autokorelacji cząstkowej zeruje się dla argumentów co do wartości bezwzględnej przekraczających p, wobec czego jeśli dla argumentów co do wartości bezwzględnej przekraczających p próbkowa funkcja autokorelacji cząstkowej mieści się w pasie wokół zera, to możemy próbować dopasować do danych proces autoregresji (rzędu co najwyżej p). W wielu sytuacjach proces autoregresji okazuje się bardziej intuicyjny do zrozumienia niż proces średniej ruchomej. Opisane poniżej funkcje potrafią dopasować model ARMA plus stała tzn. proces, który po odjęciu pewnej stałej (wycentrowaniu) jest procesem ARMA (gdyż sam proces ARMA ma średnią 0). Proces autoregresji możemy dopasować za pomocą funkcji ar. Jeśli przyjmiemy aic=TRUE, najpierw za pomocą rachunku zbliżonego do kryterium Akaike (przy założeniu, że biały szum jest gaussowski) zostanie wybrany rząd autoregesji, a następnie – stosownie do wartości argumentu method – za pomocą jednego z wybranych algorytmów (Yule’a-Walkera, Burga, uogólnionej metody najmniejszych kwadratów, metody 13 największej wiarogodności) zostanie przeprowadzona estymacja współczynników wielomianu autoregresji. Jeśli przyjmiemy aic=FALSE, za pomocą wybranego algorytmu zostanie dopasowany proces autoregresji takiego rzędu jak podany w argumencie max.order. Proces autoregresji i średniej ruchomej możemy dopasować za pomocą funkcji arima. Korzysta ona z metody największej wiarogodności (zakładając, że biały szum jest gaussowski). Rząd autoregresji i średniej ruchomej podajemy jako pierwszą i trzecią współrzędną wektora stanowiącego argument order. Jeśli dopasowujemy model ARMA, druga współrzędna tego wektora musi pozostać równa 0 (inaczej będziemy mieli model ARIMA). Musimy pozostawić domyślną wartość argumentu seasonal (gdyż w przeciwnym razie otrzymamy model SARIMA); argument ten nie ma nic z wspólnego ze składową sezonową. Możemy również wybrać rząd autoregresji i średniej ruchomej za pomocą kryterium informacyjnego Akaike, skorygowanego kryterium informacyjnego Akaike (AICc) bądź bayesowskiego kryterium informacyjnego (przy założeniu, że biały szum jest gaussowski). Służy do tego funkcja auto.arima z pakietu forecast. Należy w niej przyjąć d=0 (w przeciwnym razie dopasujemy proces ARIMA) oraz seasonal=FALSE (lub alternatywnie max.P=0 i max.Q=0, w przeciwnym razie będziemy mieli do czynienia z modelem SARIMA). W zależności od tego, jaką wartość logiczną przypiszemy do argumentu stepwise, zostanie wykonana procedura krokowa (zachłanna) lub brutalne przeszukiwanie wszystkich modeli (drugi wariant jest bardziej czasochłonny, ale oczywiście może dać lepszy wynik, pierwszy wariant czasem może nie wystarczyć). Uwaga! Zamiast wstępnego usuwania trendu i sezonowości, można jednocześnie dopasować trend, sezonowość i proces ARMA. Wystarczy że w funkcji arima bądź auto.arima w argumencie xreg umieścimy macierz złożoną z kolumn macierzy planu (poza wyrazem wolnym), która rozpina przestrzeń liniową, na którą chcemy rzutować dane. Po dokonaniu dopasowania powinniśmy sprawdzić, czy reszty (residuals) mogą być realizacją białego szumu (w szczególności czy mogą uchodzić za nieskorelowane) oraz – jeśli posłużyliśmy się metodami wykorzystującymi założenie, że biały szum jest gaussowski – czy reszty mogą być realizacją niezależnych zmiennych losowych o tym samym rozkładzie normalnym. Jeśli tak nie jest, to znaczy, że model został źle dopasowany... i zabawa trwa nadal. Być może do dobrego dopasowania modelu potrzebna jest znajomość szerszej klasy procesów stacjonarnych niż ARMA. Do sprawdzenia nieskorelowania reszt ponownie posłużą nam wykresy próbkowej funkcji autokowariancji i próbkowej funkcji autokowariancji cząstkowej. Można też użyć testu Ljunga-Boxa lub testu BoxaPierce’a. W obu tych testach zakładamy, że mamy do czynienia z procesem IID(µ, σ 2 ). Ustalamy h ≥ 1. Testujemy H : ρ(1) = ρ(2) = . . . = ρ(h) = 0 K : ρ(1) 6= 0 ∨ ρ(2) 6= 0 ∨ . . . ∨ ρ(h) 6= 0. W teście Ljunga-Boxa statystyka testowa ma postać: T = n (n + 2) h X ρ̂2 (k) . n−k k=1 Statystyka testowa testu Boxa-Pierce’a jest nieco uproszczoną wersją statystyki testowej testu LjungaBoxa i ma postać: h X T =n ρ̂2 (k). k=1 D W obu przypadkach T −−−−→ χ2h . Odrzucamy H na rzecz K na poziomie istotności α ∈ (0, 1), gdy n→∞ T > (χ2h )−1 (1 − α) (przyjmujemy p̂ = 1 − χ2h (T )). Jeśli test wykonujemy dla reszt z dopasowania procesu ARMA(p,q), bardziej adekwatny w użyciu może się okazać rozkład χ2h−(p+q) . W R test Ljunga-Boxa i test Boxa-Pierce’a realizuje funkcja Box.test. Jeden z dwóch testów wybieramy za pomocą argumentu type. Wykonując test dla reszt z dopasowania procesu ARMA(p,q), warto jest przyjąć fitdf=p + q (ze wspomnianych wyżej względów). Wykres reszt, próbkowej funkcji autokorelacji dla nich oraz p-wartości testu Ljunga-Boxa (przy fitdf=0) dla różnych h wyświetla funkcja tsdiag wywołana na obiekcie klasy "Arima" (który jest wynikiem działania funkcji arima bądź auto.arima). 14 Procesy ARIMA Definicja 11. Proces {Xt }t∈Z nazywamy scałkowanym procesem autoregresji i średniej ruchomej (ang. autoregresive integrated moving average) rzędu p, d i q, jeśli na skutek jego d-krotnego różnicowania krokiem 1 otrzymamy proces ARMA(p,q) tzn. jeśli (1 − B)d Xt jest procesem ARMA(p,q). Równoważnie możemy powiedzieć, że proces ARIMA(p,d,q) jest rozwiązaniem {Xt }t∈Z równania Φ(B)(1 − B)d Xt = Θ(B)Zt , gdzie Z ∼ W N (0, σ 2 ), stopień wielomianu Φ wynosi p zaś stopień wielomianu Θ wynosi q, przy czym jest takim rozwiązaniem, że {(1 − B)d Xt }t∈Z jest procesem stacjonarnym. Na uwagę zasługuje fakt, że proces ARIMA nie musi być procesem stacjonarnym, a jedynie po jego d-krotnym różnicowaniu krokiem 1 uzyskujemy proces stacjonarny. Z tego powodu procesy ARIMA nadają się do modelowania zjawisk, które wykazują trend lecz nie wykazują sezonowości (gdyż, jak pamiętamy, różnicowanie dowolnym krokiem pozwala usunąć trend liniowy; trend wielomianowy wyższego rzędu można niejednokrotnie usunąć przez wielokrotne różnicowanie). Wówczas przy estymacji możemy pominąć estymację trendu i od razu starać się dopasować do danych proces ARIMA. Za pomocą procesu ARIMA możemy jednak modelować również reszty po usunięciu trendu i sezonowości. Jako narzędzie diagnostyczne użytecznie przed próbą dopasowania procesu ARIMA do danych możemy wykorzystać funkcje autokorelacji i autokorelacji cząstkowej dla danych poddanych d-krotnemu różnicowaniu krokiem 1 (po uprzednim usunięciu trendu i sezonowości). Jeśli próbkowa funkcja autokorelacji mieści się w pasie wokół zera dla argumentów przekraczających q, to możemy próbować dopasować do danych proces ARIMA(0,d,q 0 ), gdzie q 0 ≤ q. Z kolei próbkowa funkcja autokorelacji cząstkowej mieści się w pasie wokół zera dla argumentów przekraczających p, to możemy próbować dopasować do danych proces ARIMA(p0 ,d,0), gdzie p0 ≤ p. Do estymacji procesu ARIMA możemy wykorzystać funkcję arima, jak to opisano wcześniej. Argument order składa się z liczb p, d i q. Aby dopasować proces ARIMA do danych wraz z estymacją rzędów na podstawie kryterium informacyjnego (zakładając, że biały szum jest gaussowski), można posłużyć się funkcją auto.arima, jak to opisano wcześniej. Wówczas argument d musimy pozostawić z domyślną wartością NA. Przypisanie argumentowi d ustalonej wartości spowoduje ustalenie w wyniku odpowiedniego rzędu na równy tej wartości. Należy wystrzegać się przyjmowania zbyt dużych wartości d. Jeśli dokonamy zbyt wielu różnicować, możemy utracić możliwość dobrego dopasowania procesu stacjonarnego do danych. Takie zjawisko nazywa się przeróżnicowaniem. Można je rozpoznać m.in. po tym, że wykres próbkowej funkcji autokorelacji dla wielokrotnie zróżnicowanych danych ma strukturę wyraźnie okresową (dopuszczalnie z malejącą amplitudą), mimo że oryginalne dane struktury okresowej nie posiadały. Po dokonaniu estymacji procesu ARIMA, powinniśmy sprawdzić, czy reszty mogą być realizacją białego szumu oraz – jeśli posłużyliśmy się metodami wykorzystującymi założenie, że biały szum jest gaussowski – czy reszty mogą być realizacją niezależnych zmiennych losowych o tym samym rozkładzie normalnym. 15