805324A (805679S) Aikasarja-analyysi Harjoitus 6 (2016) Tavoitteet (teoria): Hahmottaa aikasarjan klassiset komponentit ideaalisessa tilanteessa. Ymmärtää viivekuvauksen vaikutus trendiin. ARCH-prosessin perusominaisuus. Tavoitteet (R): Trendin estimointi PNS-menetelmällä. Box-Jenkins metodi. 1. Mitä ovat prosessin X t = 4t + e t + 2 cos( 2π 4 t) + ε2 t klassiset komponentit, kun ε t N(0, 1) on valkoista kohinaa? 2. Olkoon X t = 1 3t 2 + ε t, missä ε t N(0, 1) on valkoinen kohina. a) Onko X t heikosti stationäärinen? b) Onko (I L) 2 X t heikosti stationäärinen, kun I on identtinen kuvaus ja L on viivekuvaus eli Lx t = x t 1 kaikilla aikasarjoilla x t? c) Onko X t ARIMA-prosessi? 3. Olkoon X t = c + X t 1 + ε t missä X 0 = 0 ja ε t on valkoinen kohina. Millainen vaikutus vakiolla c > 0 on havaintovektorin (X 0,..., X 10 ) trendiin verrattuna tapaukseen c = 0? 4. ARCH-prosessista X t = σ t ε t, σ 2 t = 3 + 0.25X 2 t 1 on saatu havainto X 1 = 3, X 2 = 1, X 3 = 0, X 4 = 1. Mitä ovat ehdollisen varianssin E[X 2 t X t 1 ] arvot hetkillä t = 2, 3, 4? 1
R 1. Ota käyttöön R-paketti nimeltä astsa. 2. Tutustu R-datasettiin nimeltä AirPassengers joka sisältää lentomatkustajien kuukausittaiset lukumäärät vuosilta 1949-1960. Taustaa: Box ja Jenkins käyttivät tätä datasettiä alkuperäisissä esimerkeissään 1970-luvulla. 3. Käsittelyn helpottamiseksi nimeä aikasarja uudelleen X <- AirPassengers 4. Piirrä kuvaaja aikasarjasta X. Huomioita: Kuvaajassa näkyy kasvava trendi. Lisäksi kuvaajassa näkyy kausivaihtelua, jonka magnitudi kasvaa ajan funktiona. 5. Piirrä kuvaaja logartimisesti skaalatusta aikasarjasta lx<- log(x). Huomioita: Logaritmin ottaminen muuntaa kausivaihtelun magnitudin ajan suhteen tasaisemmaksi. Tämän takia ryhdytään tarkastelemaan logaritmista aikasarjaa. 6. Tee alustava tarkastelu trendin luonteesta estimoimalla aikasarjasta lx lineaarinen trendi. a<- lsfit(time(lx),lx) Taustaa: Komento lsfit(t,x) tekee luentojen kappaleen 7.4.2 pienimmän neliösumman trendin estimoinnin mallille X t = a 0 + a 1 t + ε t (1) Tässä toteutuksessa komennossa on köytetty todellista aikasarjan aikaskaalaa time(x) eikä arvoja t = 1,..., n. 7. Piirrä estimoitu lineaarinen trendi samaan kuvaan aikasarjanlx kuvaajan kanssa: 2
abline(a,col="red") 8. Piirrä trendin estimaatin residuaalit plot(a$residuals,type="l") Taustaa: Mallin (1) pienimmän neliösumman estimaatin residuaalit ε t := X t â 0 â 1 t kertovat estimoinnin onnistumisesta. 9. Muodostetaan logaritmisesti skaalatun aikasarjan 1. differenssi d1 <- diff(lx) Taustaa: Komento diff(b) antaa differenssit b t b t 1 10. Muodostetaan logaritmisesti skaalatun aikasarjan 2. differenssi d2 <- diff(d1) Taustaa: Kun L on viivekuvaus, niin aikasarjan X t toisen kertaluvun differenssit ovat muotoa (I L) 2 X t = X t 2X t 1 + X t 2. 11. Piirrä kuva aikasarjasta lx sekä sen 1. ja 2. kertaluvun differensseistä: 12. plot.ts(cbind(lx, d1, d2),main="") Huomioita: Myös visuaalinen tarkastelu vihjaa, että 1. kertaluvun differenssit ovat riittäviä trendin poistamiseen 13. Tutki aikasarjan lx periodogrammia kausivaihtelun periodin tunnismamiseksi. Käytä komentoa pgram <-spec.pgram(ts(lx,frequency=1),detrend=true) Taustaa: komento käyttää default-arvoja silotukselle ja taperingmenetelmälle. Optio dtrend=true poistaa aikasarjasta lineaarisen trendin ennen silotetun periodogrammin määräämistä. 14. Piirrä silotetun periodogrammin kuvaaja plot(pgram$spec,type="l") 3
15. Voimakkain kausikomponentti löytyy periodilla P: mx<- which.max(pgram$spec) P<-1/pgram$freq[mx] Taustaa: komento palauttaa vektorin maksimikohdan indeksin. Pienemmät piikit ovat tämän perustaajuuden harmonisia toistoja 24,36,48 ja 60 kohdalla. 16. Muodosta kausidifferenssit 12 kk:n periodilla ds1 = diff(lx, 12) Taustaa: Komento diff(b,n) antaa differenssit b t b t n 17. Piirrä kausidifferenssien ds1 kuvaaja. (Kokeile myös, mitä tapahtuu periodin arvolla P 12!) 18. Estimoi SARIMA(1, 1, 1) (0, 1, 1) 12 -mallin parametrit komennolla S1<-sarima(lX, 1,1,1, 0,1,1, 12) 19. Tee diagnostinen tarkastelu estimoidulle mallille. Kertausta: Diagnostiikassa tutkitaan residuaalien riippumattomuutta (autokorrelaatiofunktiolla ja Ljung-Box- testisuureella) sekä residuaalien normaaliutta (QQ-kuviolla). 20. Estimoi SARIMA(0, 1, 1) (0, 1, 1) 12 -mallin parametrit komennolla S2<-sarima(lX, 0,1,1, 0,1,1, 12) 21. Tee diagnostinen tarkastelu mallille S2 22. Ennusta aikasarjan kahden vuoden tulevaa kehitystä komennolla sarima.for(lx, 24, 0,1,1, 0,1,1,12) Taustaa: Komento sarima.for(lx, k, 0,1,1, 0,1,1,12) laatii k-askeleen ennusteen aikasarjalle SARIMA(0, 1, 1) (0, 1, 1) 12 - mallilla. Sinisellä värillä on ns. 2σ-virherajat. 4
Harjoitustyö 6 (Palautus 18.12 mennessä) Yleiset ohjeet: Tee vaaditut tehtävät ja laadi raportti. Raportti on lyhyt johdonmukainen selvitys tehtävästä (max 2 sivua) ja se voi sisältää esim. taustaa tehtävälle, pohdintoja, johtopäätöksiä tai yhteenvedon esimerkkiajojen tuloksista. Raportin saa kirjoittaa myös käsin. Opettaja voi tarvittaessa pyytää raporttiin lisämateriaalia. Laskennallinen tehtävä toteutetaan R-ohjelmistolla. Opettajalle palautetaan selkeästi kommentoitu koodi. Harjoitustyötä saa tehdä yhteistyössä muiden kanssa. Opiskelijan on kuitenkin pystyttävä tarvittaessa osoittamaan oman osaamisensa taso. R-koodi ja raportti on palautettava määräaikaan mennessä opettajalle (sari.lasanen@oulu.fi). Harjoitustöitä on yhteensä 6 kappaletta. Yhdestä harjoitustyöstä voi saada joko 0 tai 4 pistettä. Huomaa, että aineopintona kurssin suorittavat tekevät vain tehtävän 1! 1. Estimoi aikasarjan chicken trendi kuten R-osion tehtävissä 6-8. 2. (Syventävän kurssin tehtävä) Tee aikasarjasta nottem sopivan SARIMA-mallin avulla kahden vuoden ennuste. Käytä diagnostiikkaa mallin tarkistuksessa. 5