805324A (805679S) Aikasarja-analyysi Harjoitus 5 (2016) Tavoitteet (teoria): Ymmärtää kausivaihtelun käsite ja sen yhteys otoshetkiin. Oppia käsittelemään periodogrammia.. Tavoitteet (R): Periodogrammin, silotetun periodogrammin ja luottamusvälien laskeminen. Havaita, etä silotetun periodogrammin luottamusväli on parempi kuin raa an periodogrammin luottamusväli. Esitiedot: Trigonometristen funktioiden jaksollisuus. 1. Tutki, onko a)-c)-kohdan aikasarjalla X t, kausivaihtelua Jos on, niin mikä on kausivaihtelun periodi? a) X t = 5 cos ( 2π 3 t) + 2 sin ( 2π 4 t) b) X t = 5 cos ( 4π 3 t) c) X t = 5 cos (3πt) 2. 3. Näytä, että heikosti stationäärinen prosessi, jonka odotusarvo on nolla, on korreloimatonta valkoista kohinaa jos ja vain jos sen spektritiheysfunktio on vakio. 4. Olkoon X t, t Z, valkoista kohinaa. a) Kirjoita havaintovektorin (X 1,..., X n ) periodogrammin lauseke. b) Laske a)-kohdan periodogrammin odotusarvo, kun arvot X t ovat normaalijakautunutta valkoista kohinaa. c) Miten periodogrammin silotus tapering-menetelmällä vaikuttaa odotusarvoon? 1
R 1. Luo vektori nimeltä t, joka sisältää ajanhetket 1, 2, 3,..., 100. Taustaa: Komento seq(1,n) luo vektorin, jossa on luvut 1,...,n. 2. Testaa, miten R-ohjelmassa käytetään arvoa π syöttämällä pi 3. Luo vektori nimeltä X, jossa on arvot ( ) ( ) 2π 2π X t = 5 cos 3 t + 2 sin 4 t, t = 1,..., 100 Taustaa: Perusfunktiot, kuten trigonometrinen funktio sin, on R- ohjelmassa toteutettu vektoriarvoiselle argumentille. Esim. kun b on vektori, niin sin(b) on vektori, joka sisältää vektorin b alkioiden sinit vastaavassa järjestyksessä. 4. Laske vektorin X periodogrammi syöttämällä pgram <- 1/100* abs(fft(x))^2 Taustaa: Periodogrammi on I 100 (ω k ) = 1 100 2 X 100 k e ikω, k = 1,..., 100. k=1 Komento fft(b) laskee vektorin b diskreetin Fourier-muunnoksen ns. FFT-algorithmin avulla (eng. Fast Fourier Transform). Sana fast viittaa siihen, että algoritmi on nopea ja käyttää niukalti tietokoneen muistia, kun n=2 k jollakin k N. Komento abs(a) laskee luvun a itseisarvon. 5. Muodosta periodogrammin pgram x-koordinaatit ω k (eli taajuudet) komennolla omega.x <- 2*pi*(t-1)/100 Taustaa: FFT tuottaa diskreetin Fourier-muunnoksen taajuuden arvoilla omega.x 2
6. Piirrä periodogrammin kuva taajuuksilla [0, π]. Taustaa: Kun piirretään koordinaattipareja, mutta x-akselin arvot eivät ole kokonaislukuindeksejä, niin plot-komennossa annetaan sekä x- että y-koordinaatit x ja y vektoreina. Komentotyyppi on plot(x,y) Kun x-akseli on kuvassa liian leveä, voi x-akselin arvot rajata välille a x b antamalla plot-komennon sisällä option xlim=c(a,b). Kertausta: Periodogrammi koostuu kahdesta osasta, jotka ovat toistensa peilikuvat. Arvot välillä [0, π] antavat yhden puolen periodogrammista. 7. Piirrä periodogrammin kuva, kun x-akselilla on taajuuden sijaan periodit 2π/ω k eli piirrettävät koordinaatit ovat muotoa (x k, y k ) = (2π/ω k, I 100 (ω k )). Vektorin x ei tarvitse olla kasvava, vaan R järjestää vektorien alkiot automaattisesti oikeaan järjestykseen kuvaajassa. Kun x-akseli on kuvassa liian leveä, voi x-akselin arvot rajata välille a x b antamalla plot-komennon sisällä option xlim=c(a,b). 8. Piirrä havaintovektorin X otosautokorrelaatio. Vertaa, onko helpompi tulkita otosautokorrelaatiota vai periodogrammia. Kertausta: otosautokorrelaation komennon nimi on acf. 9. Ota käyttöön R-paketti nimeltä astsa komennolla library("astsa") (Mikäli pakettia ei löydy, asenna se komennolla install.packages( astsa )) 10. Käsitellään datasettiä soi Taustaa: Datasetti soi on ns. Southern Oscillation Index - Tyynenmeren El Nino ja El Nina ilmiöihin liittyvä statistiikka. 3
11. Muuta aikasarjan soi frequency-parametrin arvoksi 1. Kertausta: ts(b, frequency=k). Jos muutosta ei tehdä, niin silotetun periodogrammin taajuusasteikko on tässä harjoituksessa erilainen. 12. Piirrä aikasarjan soi periodogrammi joko FFT-menetelmällä tai käyttämällä valmista komentoa soi.raw<-spec.pgram(soi,taper=0) 13. Muodosta keskiarvoistamalla silottava ydinfunktio komennolla k = kernel(rep(1/7,4)) Taustaa: komento kernel(b) tuottaa silottavan ytimen (b m,..., b 1, b 0, b 1,..., b m ). Sen argumentti on vektori b, joka koostuu alkioista b 0,..., b m. Komento palauttaa tskernel-luokan olion. 14. Estimoi aikasarjan soi spektria periodogrammin avulla. Käytä periodogrammin silotusta ja tapering-menetelmää komennolla soi.smooth <- spec.pgram(soi, kernel=k, taper=0.1, log="no") Taulukko 1: Komennon spec.gram argumentit k Silotusydin Luokan tskernel-olio taper=p 2p = tapering-menetelmällä 0 p 0.5 modifioitujen alkioiden lkm jaettuna kaikkien alkioiden lkm. log Logaritminen asteikko yes, no 15. Määrää raa an periodogrammin asymptoottiset 95%:n luottamusväli indeksille 10 komennoilla a.soi.raw = qchisq(.025, 2) b.soi.raw = qchisq(.975, 2) 4
Taulukko 2: spec.pgram palauttaa spec-luokan olion, jonka osia avat: soi.smooth$spec soi.smooth$freq soi.smooth$df silotettu periodogrammi silotetun periodogrammin taajuudet ω k /2π Vapausasteiden lkm (tarvitaan luottamusvälien määräämiseen) raw.lower<-2*soi.raw$spec[10]/b.soi.raw raw.upper<-2*soi.raw$spec[10]/a.soi.raw Taustaa: Periodogrammin asymptoottinen 95%:n luottamusväli on 2I n (ω k ) χ 2 2 (0.975) f(ω k) 2I n(ω k ) χ 2 2 (0.025), kun periodogrammia käytetään spektritiheysfunktion f estimaattorina. (Luottamusväli on seuraus luentomonisteen lauseesta 6.6). 16. Määrää silotetun periodogrammin asymptoottiset 95%:n luottamusvälit indeksille 10 komennoilla df.soi = soi.smooth$df a.soi = qchisq(.025, df.soi) b.soi = qchisq(.975, df.soi) smooth.lower<-df.soi*soi.smooth[10]$spec/b.soi smooth.upper<-df.soi*soi.smooth$spec[10]/a.soi Taustaa: Silotus ja tapering vähentävät periodogrammin asympottoottista virhevarianssia spektritiheysfunktion estimaattorina di n (ω k ) χ 2 d (0.975) f(ω k) di n(ω k ) χ 2 d (0.025) missä d on vapausasteiden lukumäärä. 5
Harjoitustyö 5 (Palautus 11.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ä. 1. Lataa R-paketin astsa datasetit soi ja rec. Datasetit liittyvät Tyynenmeren alueen ilmastomuutokseen. 2. Määrää dataseteille soi ja rec (kummallekin erikseen!) silotetut periodogrammit. 3. Määrää silotettujen periodogrammien asymptoottiset luottamusvälit. 4. Mitä samankaltaisuuksia dataseteillä näyttää olevan? 6