Idősoros elemzés Ferenci Tamás, ft604@hszk.bme.hu 2009. január 7. A felhasznált adatbázisról Elemzésemhez a tanszéki honlapon rendelkezésre bocsátott TimeSeries.xls idősoros adatgyűjtemény egyik idősorát, a francia frank árfolyamának 1986.01.03. és 1993.12.31. közötti értékeit használtam fel (MNBNapiArf fül, X oszlop). Az így kapott idősorban összesen 2459 megfigyelés volt. Stacionaritás vizsgálata Mielőtt bármiféle tesztelést végzünk, érdemes az idősort elsőként grafikusan is ábrázolni (az emberi szem sok összefüggés felfedésére képes... ), ahogy az az 1. ábrán is látható. 1. ábra. A használt idősorunk Itt különösebb gyakorlatra sincs szükség, hogy megállapítsuk: idősorunk gyakorlatilag kizárt, hogy stacionáriusnak bizonyulna, hiszen egyértelmű trendje van. A kicsit formálisabb igazoláshoz nézzük meg a 2. ábrán látható korrelogrammot (14-es késleltetésig számítva). Látható, hogy az ACF egyáltalán nem cseng le, márpedig ez nem konzisztens a stacionaritás feltételezésével. A teljesen formális igazoláshoz a Ljung-Box Q-statisztikát vehetjük alapul. 1
2. ábra. A szintjén vizsgált idősor korrelogrammja Autocorrelation function for v1 LAG ACF PACF Q-stat. [p-value] 1 0.9985 *** 0.9985 *** 2454.7787 [0.000] 2 0.9971 *** -0.0052 4903.2766 [0.000] 3 0.9955 *** -0.0098 7345.3686 [0.000] 4 0.9940 *** 0.0010 9781.0852 [0.000] 5 0.9925 *** -0.0008 12210.4307 [0.000] 6 0.9910 *** -0.0055 14633.3434 [0.000] 7 0.9895 *** 0.0013 17049.8580 [0.000] 8 0.9880 *** 0.0005 19459.9980 [0.000] 9 0.9865 *** 0.0016 21863.8040 [0.000] 10 0.9850 *** 0.0025 24261.3287 [0.000] 11 0.9835 *** 0.0045 26652.6529 [0.000] 12 0.9821 *** -0.0006 29037.7866 [0.000] 13 0.9806 *** -0.0002 31416.7438 [0.000] 14 0.9791 *** -0.0038 33789.4867 [0.000] Kivétel nélkül minden p-érték 0,000, azaz a nullhipotézis minden szokványos szignifikanciaszinten elvethető: idősorunk valóban nem stacionáriusnak minősíthető. 2
Az idősor transzformálása Mivel az idősor nem stacionárius, így az ARMA-módszertan közvetlenül nem alkalmazható rá. Ez azonban önmagában még nem probléma, hiszen ha találunk olyan transzformációt, mellyel stacionerré tudjuk tenni, akkor a transzformált folyamat modellezhető, majd a kapott eredmények (pl. előrejelzések) visszatranszformálhatóak az eredeti értelmezésbe. Újra megnézve most az 1. ábrát, elég egyértelműnek tűnik, hogy az idősorunk lineáris trendet követ. Ezt kicsit kézzelfoghatóbbá tehetjük, ha a gretl környezet alatt felveszünk egy időindexet, és determinisztikus modellezést végzünk, azaz megpróbáljuk kiregresszálni az idősorunk elemeit ezen időváltozóval. (Ez természetesen nem más, mint lineáris trend illesztése az idősorra.) Az eredményt a 3. ábra szemlélteti. 3. ábra. Az idősor egyszerű determinisztikus modellezése Az illeszkedés valóban jó, az R 2 mutató értéke 0,9642: 3
Model 1: OLS estimates using the 2459 observations 1 2459 Dependent variable: v1 Coefficient Std. Error t-ratio p-value const 5.64703 0.0238827 236.4490 0.0000 index 0.00432803 1.68171e-05 257.3579 0.0000 Mean of dependent variable 10.9705 S.D. of dependent variable 3.12936 Sum of squared residuals 861.002 Standard error of the regression (ˆσ) 0.591970 Unadjusted R 2 0.964231 Adjusted R 2 0.964216 Degrees of freedom 2457 Durbin Watson statistic 0.0132245 First-order autocorrelation coeff. 0.993509 Log-likelihood 2198.9 Akaike information criterion 4401.83 Schwarz Bayesian criterion 4413.45 Hannan Quinn criterion 4406.05 Mindezek alapján arra a döntésre juthatunk, hogy idősorunkat a lineáris trendtől tisztítva kell megpróbálnunk stacionarizálni. Általánosságban két megoldás jöhet szóba: az idősor első differenciázottjának vétele vagy a determinisztikus trend kivonása. A kettő között ADF-teszttel dönthetünk: ha az eredeti idősor csak konstanssal integrált, de a konstans és trend körül stacioner, akkor a determinisztikus trend kivonása a célravezető, ha konstans és trend körül sem stacioner, akkor a differenciázás. A két releváns lehetőséget megvizsgálva a gretl-ben: Augmented Dickey-Fuller tests, order 1, for v1 sample size 2457 unit-root null hypothesis: a = 1 test with constant model: (1 - L)y = b0 + (a-1)*y(-1) +... + e 1st-order autocorrelation coeff. for e: 0.000 estimated value of (a - 1): 8.58636e-005 test statistic: tau_c(1) = 0.19528 asymptotic p-value 0.9724 with constant and trend model: (1 - L)y = b0 + b1*t + (a-1)*y(-1) +... + e 1st-order autocorrelation coeff. for e: 0.000 estimated value of (a - 1): -0.00641982 test statistic: tau_ct(1) = -2.76327 asymptotic p-value 0.2111 Rögtön látható, hogy mindkét esetben tartható nullhipotézis, azaz a nemstacionaritás feltevése. Ez a fent mondottak értelmében azt jelenti, hogy a differenciázást választjuk a stacionarizálásra! Az idősor első differenciázottjának grafikonját az a 4. ábra mutatja. Ezt elnézve máris hihető a stacionaritás feltevése! Ezt megerősíti az 5. ábrán látható korrelogramm is. 4
4. ábra. Az idősor első differenciázottja A Ljung-Box-teszt adattáblájából AC és PAC értékein túl az is látszik, hogy a Ljung-Box Q sehol nem lesz szignifikáns: Autocorrelation function for d_v1 LAG ACF PACF Q-stat. [p-value] 1-0.0113-0.0113 0.3134 [0.576] 2 0.0064 0.0062 0.4132 [0.813] 3 0.0045 0.0047 0.4640 [0.927] 4-0.0076-0.0075 0.6064 [0.962] 5-0.0010-0.0012 0.6087 [0.988] 6 0.0107 0.0107 0.8899 [0.989] 7-0.0069-0.0066 1.0066 [0.995] 8-0.0084-0.0087 1.1805 [0.997] 9-0.0084-0.0087 1.3561 [0.998] 10-0.0191-0.0190 2.2565 [0.994] 11-0.0089-0.0092 2.4511 [0.996] 12-0.0132-0.0134 2.8831 [0.996] 13 0.0135 0.0135 3.3365 [0.996] 14-0.0194-0.0190 4.2634 [0.994] A formális igazoláshoz segítségül hívhatjuk az ADF-tesztet: 5
5. ábra. Az idősor első differenciázottjának korrelogrammja Augmented Dickey-Fuller tests, order 1, for d_v1 sample size 2456 unit-root null hypothesis: a = 1 test with constant model: (1 - L)y = b0 + (a-1)*y(-1) +... + e 1st-order autocorrelation coeff. for e: 0.000 estimated value of (a - 1): -1.00503 test statistic: tau_c(1) = -34.9874 asymptotic p-value 5.278e-037 with constant and trend model: (1 - L)y = b0 + b1*t + (a-1)*y(-1) +... + e 1st-order autocorrelation coeff. for e: 0.000 estimated value of (a - 1): -1.00548 test statistic: tau_ct(1) = -34.9911 asymptotic p-value 6.389e-058 Látható, hogy a nullhipotézis minden szokásos szignifikanciaszinten elvethető: a transzformált idősorunk nem tartalmaz egységgyököt. 6
A transzformált idősor ARMA-modellezése Ezen jó hírek után nincs más dolgunk, mint a transzformált idősorra ARMA-modellt adni. Már most érdemes megjegyezni, hogy a transzformált modellre adott ARMA(p,q) modell az eredeti idősor tekintetében ARIMA(p,1,q) modell lesz. A legfontosabb szempont, hogy takarékos modellt adjunk, azaz lehetőleg kis p,q értékek mellett találjunk kellően illeszkedő modellt. Akár szisztematikus próbálkozással (p=0, q=0; p=1, q=0; p=0, q=1; p=1, q=1 stb.) is nagyon gyorsan rájöhetünk, hogy a p=2, q=2 az első olyan maximális késleltetés-rend választás, mely mellett az egyes AR, ill. MA paraméterek kielégítően szignifikánsak lesznek. Nem is akárhogy, mindegyik minden szokásos szignifikanciaszinten szignifikáns: Model 1: ARMA estimates using the 2458 observations 2 2459 Dependent variable: d_v1 Standard errors based on Hessian Coefficient Std. Error t-ratio p-value const 0.00439025 0.00136958 3.2056 0.0013 φ 1 0.376570 0.0139120 27.0680 0.0000 φ 2 0.977528 0.0232809 41.9885 0.0000 θ 1 0.368384 0.0120308 30.6201 0.0000 θ 2 0.983359 0.0215774 45.5736 0.0000 Mean of dependent variable 0.00438975 S.D. of dependent variable 0.0680753 Mean of innovations 1.66061e-07 Variance of innovations 0.00461981 Log-likelihood 3121.00 Akaike information criterion 6229.9 Schwarz Bayesian criterion 6195.1 Hannan Quinn criterion 6217.3 AR MA Real Imaginary Modulus Frequency Root 1 0.1926 0.9929 1.0114 0.2805 Root 2 0.1926 0.9929 1.0114 0.2805 Root 1 0.1873 0.9909 1.0084 0.2797 Root 2 0.1873 0.9909 1.0084 0.2797 (Észrevehető, hogy nagyobb késleltetések mellett is adható hasonlóan szignifikáns modell, de mi most különösen ebben az egyszerű példában megelégszünk ezzel az igen takarékos megközelítéssel.) Modelltulajdonságok ellenőrzése Mielőtt a modellt bármilyen vizsgálatra felhasználjuk, ellenőriznünk kell megfelelőségét, mindenekelőtt, hogy a modell szerinti reziduumok valóban WN(0,σ 2 ) fehérzajnak tekinthetőek-e. A 6. ábra mutatja a reziduumok korrelogrammját. Megnyugodva láthatjuk (ezt a Ljung-Box Q statisztika is megerősíti), hogy a reziduumok a vizsgált késleltetéstartományban teljesen mentesek minden szignifikáns autokorrelációtól és parciális autokorrelációtól: 7
6. ábra. Az idősor első differenciázottjára adott ARMA modell reziduumainak korrelogrammja Residual autocorrelation function LAG ACF PACF Q-stat. [p-value] 1-0.0026-0.0026 0.0167 [0.897] 2-0.0001-0.0001 0.0167 [0.992] 3-0.0015-0.0015 0.0220 [0.999] 4 0.0010 0.0010 0.0244 [1.000] 5 0.0017 0.0017 0.0315 [1.000] 6 0.0013 0.0013 0.0358 [1.000] 7-0.0059-0.0059 0.1218 [1.000] 8 0.0003 0.0002 0.1220 [1.000] 9-0.0126-0.0126 0.5124 [1.000] 10-0.0261-0.0262 2.2002 [0.995] 11-0.0026-0.0027 2.2168 [0.998] 12-0.0086-0.0087 2.4014 [0.998] 13 0.0055 0.0054 2.4767 [0.999] 14-0.0206-0.0206 3.5296 [0.998] További elvárás, hogy a reziduumok eloszlása normális legyen. Ezt szintén gyorsan ellenőrizhetjük gretl-ben (7. ábra). Az ábrán látható a normalitásra vonatkozó hipotézisvizsgálat eredménye is, mely egyértelműen elveti a normalitást. (Ez nyilván nem jó hír, hiszen arra utal, hogy modellünk nem tökéletes de jelen egyszerű vizsgálatban ezt el kell fogadjuk. Annál is inkább, mert a 8
vélhető oka mindössze annyi, hogy van néhány kiugró érték, márpedig erre érzékeny a teszt.) 7. ábra. Az idősor első differenciázottjára adott ARMA modell reziduumainak normalitásvizsgálata Előrejelzés a modell alapján A modell alapján lehetőségünk nyílik az idősor előrejelzésére. A 8. ábra az előrejelzéseket mutatja (95%-os konfidenciaintervallumukkal). Mint látható, az előrejelzések bizonytalansága gyorsan nő (ahogy távolodunk az idősorban lévő információtól) ezért csak az 5 időpontra történő előrejelzést szemléltettük. 9
8. ábra. Az idősor előrejelzése a rá adott ARIMA(2,1,2) modell alapján 10