3. Tietokoneharjoitukset Aikasarjan logaritmointi Aikasarjoja analysoidaan usein logaritmisessa muodossa. Asialooginen perustelu logaritmoinnille: Muuttujan arvojen suhteelliset muutokset ovat usein tärkeämpiä kuin niiden absoluuttiset muutokset. Tekniset perustelut logaritmoinnille: Jos aikasarjassa on eksponentiaalinen trendi, trendi voidaan linearisoida logaritmoimalla aikasarja. Jos aikasarjan varianssi (tai syklinen vaihtelu) kasvaa aikasarjan tason mukana, varianssi voidaan riippuen tapauksesta vakioida logaritmoimalla aikasarja. Logaritmointi ja suhteelliset muutokset Jos muuttujan x arvo x 0 muuttuu p%, niin uusi arvo x 1 on ( x 1 = 1 + p ) x 0 100 Logaritmoimalla saadaan: log(x 1 ) = log(x 0 ) + log ( 1 + p ) log(x 0 ) + p 100 100 Siten suhteellinen muutos aikasarjan tasossa on logaritmoituna (lähes) riippumaton tasosta ja riippuu (lähes) pelkästään muutosprosentista p. 1 / 13
Demotehtävät 3.1 Tarkastele alla olevan taulukon aikasarjoja. Mitkä aikasarjat näyttävät stationaariselta? Tiedosto (.txt) Muuttuja Kuvaus Havaintoväli Aikasarjan pituus INTEL Intel_Close Intelin osakekurssi Pörssipäivä n = 20 Intel_Volume Intelin osakkeiden myynti SUNSPOT Spots Auringonpilkkujen 1v n = 215 määrä MILCO2 MILCO2 Mauna Loa-tulivuorella 1kk n = 216 tehtyjen hiilidioksidimittausten tulokset SALES Sales Erään tukkukaupan 1kk n = 144 myynnin volyymi PASSENGERS Passengers Lentomatkustajien lkm. 1kk n = 144 kansainvälisillä linjoilla USA:ssa Ratkaisu. Yllä olevan taulukon aikasarjoja kuvaavat aikasarjadiagrammit on esitetty seuraavilla sivuilla. INTEL <- read.table("intel.txt",header=t) SUNSPOT <- read.table("sunspot.txt",header=t,row.names=1) MLCO2 <- read.table("mlco2.txt",header=t,row.names=1) SALES <- read.table("sales.txt",header=t) PASSENGERS <- read.table("passengers.txt",header=t,row.names=4) Intel_Close <- ts(intel$intel_close) Intel_Volume <- ts(intel$intel_volume) Spots <- ts(sunspot,start=1749) Mlco2 <- ts(mlco2$mlco2,frequency=12) Sales <- ts(sales$sales,frequency=12) Passengers <- ts(passengers$passengers) 2 / 13
INTEL: Intel_Close Intelin osakekurssi New Yorkin pörssipäivän lopussa neljän viikon ajalta. plot(intel_close) Intel_Close 60 62 64 66 5 10 15 20 Time Kuva 1: Aikasarja Intel_Close aineistosta. Trendi: Ei selvää trendiä ja aikasarjan taso vaihtelee. Kausivaihtelu: Ei kausivaihtelua. Stationaarisuus: Pienen havaintomäärän seurauksena on vaikea ottaa kantaa stationaarisuuteen. Aikasarjan tason vaihtelu viittaa stationaarisuutta vastaan. Kyseistä aikasarjaa tutkitaan lisää tehtävässä 3.3. 3 / 13
INTEL: Intel_Volume Intelin osakkeen päivämyynti (kpl) New Yorkin pörssissä neljän viikon ajalta. plot(intel_volume) Intel_Volume 10000 15000 20000 5 10 15 20 Time Kuva 2: Aikasarja Intel_Volume aineistosta. Trendi: Ei selvää trendiä ja aikasarjan taso vaihtelee. Kausivaihtelu: Ei kausivaihtelua. Stationaarisuus: Pienen havaintomäärän seurauksena on vaikea ottaa kantaa stationaarisuuteen. Aikasarjan tason vaihtelu viittaa stationaarisuutta vastaan. 4 / 13
SUNSPOT: Spots Auringonpilkkujen vuotuista määrää kuvaava muuttuja. plot(spots) Spots 0 50 100 150 1750 1800 1850 1900 1950 Time Kuva 3: Aikasarja Spots aineistosta. Trendi: Ei trendiä. Kausivaihtelu: Selvää kausivaihtelua, kauden pituus on 11 vuotta. Aikasarjan amplitudi (aallon korkeus) vaihtelee. Stationaarisuus: Aikasarja ei näytä stationaariselta, koska selvää kausivaihtelua. 5 / 13
MLCO2: MLCO2 Mauna Loa -tulivuorella (Havaiji) tehtyjen hiilidioksidimittausten tulokset. plot(mlco2) Mlco2 15 20 25 30 5 10 15 Time Kuva 4: Aikasarja MLCO2 aineistosta. Trendi: Selvä nouseva lineaarinen trendi. Kausivaihtelu:Melko säännöllistä kausivaihtelua; kauden pituus 12 kk; kausivaihtelukomponentin amplitudi (aallon korkeus) pysyy vakiona Stationaarisuus: Aikasarja ei näytä stationaariselta, koska lineaarinen nouseva trendi ja kausivaihtelua. 6 / 13
SALES: Sales Erään tukkukaupan kuukausimyynnin arvo plot(sales) Sales 150 200 250 2 4 6 8 10 12 Time Kuva 5: Aikasarja Sales aineistosta. Trendi: Nouseva trendi. Aikasarjan yleistaso vaihtelee jonkin verran trendin ympärillä Kausivaihtelu: Melko säännöllistä kausivaihtelua; kauden pituus 12kk. Kausivaihtelukomponentin amplitudi (aallon korkeus) kasvaa aikasarjan tason mukana. Stationaarisuus: Aikasarja ei näytä stationaariselta, koska lineaarinen nouseva trendi ja kausivaihtelua. 7 / 13
PASSENGERS: Passengers Kansainvälisten lentolinjojen vuotuiset markustajamäärät USA:ssa. plot(passengers) Passengers 100 200 300 400 500 600 0 20 40 60 80 100 120 140 Time Kuva 6: Aikasarja Passengers aineistosta. Trendi: Nouseva lievästi käyräviivainen trendi Kausivaihtelu: Melko säännöllistä kausivaihtelua; kauden pituus 12 kk; kausivaihtelukomponentin amplitudi (aallon korkeus) kasvaa aikasarjan tason mukana Stationaarisuus: Aikasarja ei näytä stationaariselta, koska lineaarinen nouseva trendi ja kausivaihtelua. 8 / 13
3.2 Tiedostossa PASSENGERS2.txt on aikasarja Passengers. Piirrä aikasarja käyttäen y- akselilla sekä lineaarista että logaritmista asteikkoa ja vertaa kuvioita toisiinsa. Tiedosto (.txt) Muuttuja Kuvaus Havaintoväli Aikasarjan pituus PASSENGERS2 Passengers Lentomatkustajien lkm. 1kk n = 144 kansainvälisillä linjoilla USA:ssa Ratkaisu. PASSENGERS2 <- read.table("passengers2.txt",header=t,sep="\t") # Huomaa että aineisto on eroteltu tabulaattorilla names(passengers2) Vuosiluvut saadaan kohdalleen seuraavasti: PASS2 <- ts(passengers2$passengers,start=1949,frequency=12) par(mfrow=c(1,2),mar=c(2.5,2.5,1.5,1.5)) # Komennon par avulla saadaan molemmat aikasarjat näkyviin samaan aikaan plot(pass2,main="passengers") plot(log(pass2),main="log(passengers)") dev.off() # dev.off() palauttaa oletusasetukset funktiolle par() 9 / 13
100 200 300 400 500 600 Passengers 5.0 5.5 6.0 6.5 Log(Passengers) 1950 1954 1958 1962 1950 1954 1958 1962 Kuva 7: Aikasarja Passengers sekä lineaarisella että logaritmisella asteikolla. Kuvasta 7 nähdään että alkuperäisen aikasarjan kausivaihtelun amplitudi (aallonkorkeus) kasvaa aikasarjan tason mukana (vasen kuva). Logaritmointi vakioi amplitudin (oikea kuva). Toisaalta alkuperäisen aikasarjan trendin (lievä) käyryys ylikorjautuu (lievästi) logaritmoinnissa. 3.3 Tutki seuraavien aikasarjojen stokastisia ominaisuuksia estimoimalla niiden autokorrelaatioja osittaisautokorrelaatiofunktiot. Tiedosto (.txt) Muuttuja Kuvaus Havaintoväli Aikasarjan pituus INTEL Intel_Close Intelin osakekurssi Pörssipäivä n = 20 SUNSPOT Spots Auringonpilkkujen 1v n = 215 määrä Ratkaisu. Intel_Close Tehtävän 3.1 kuvaajan perusteella ei pystytty suoraan päättelemään, onko aikasarja stationaarinen vai ei. Lasketaan autokorrelaatiot ja osittaisautokorrelaatiot. par(mfrow=c(1,2)) acf(intel_close) pacf(intel_close) 10 / 13
Series Intel_Close Series Intel_Close ACF 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0 Partial ACF 0.4 0.2 0.0 0.2 0.4 0.6 0.8 0 2 4 6 8 10 Lag 2 4 6 8 10 12 Lag Kuva 8: Auto- ja osittaisautokorrelaatiofunktio Intel_Close aikasarjasta. Tässä siniset viivat kertovat tilastollisen merkitsevyyden 5% merkitsevyystasolla (onko korrelaatio jollakin viiveellä merkitsevä). Sinisten viivojen sisäpuolella olevia havaintoja voidaan pitää kohinana 5% merkitsevyystasolla. Sinisten viivojen tarkat arvot saadaan komennoilla qnorm((1 + 0.95)/2)/sqrt(length(Intel_Close)) -qnorm((1 + 0.95)/2)/sqrt(length(Intel_Close)) Kommentteja: (1) Aikasarja Intel-Close voi kuvaajien perusteella hyvin olla stationaarinen ja se ei siten vaadi differensointia. Aikasarjan taso vaihtelee kyllä melko voimakkaasti, mutta sen käyttäytyminen on lokaalisti rauhallista. Aikasarjassa ei ole monotonista trendiä eikä näkyvää kausivaihtelua. 11 / 13
Spots Tehtävän 3.1 perusteella Spots ei ole stationaarinen. Katsotaan miltä auto- ja osittaisautokorrelaatiofunktiot näyttävät epästationaariselle aikasarjalle. par(mfrow=c(1,2)) acf(spots,lag.max=50) pacf(spots,lag.max=50) Spots Series Spots ACF 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0 Partial ACF 0.5 0.0 0.5 0 10 20 30 40 50 Lag 0 10 20 30 40 50 Lag Kuva 9: Auto- ja osittaisautokorrelaatiofunktio Spots aikasarjasta. Kommenntteja: (1) Huomaa että autokorrelaatiofunktiossa nähdään aikasarjan kausivaihtelu selvästi. Kuvaa suurentamalla nähdään että kauden pituus näyttäisi olevan 11 vuotta. 12 / 13
Kotitehtävät 3.4 Määrää differenssit D, D 12 ja D 12 D tiedoston SALES.txt aikasarjasta Sales ja vertaa differenssejä alkuperäiseen aikasarjaan ja toisiinsa. Mitkä edellä mainituista operaatioista tuottavat stationaariselta näyttävän aikasarjan? Perustele stationaarisuus visualisoimalla alkuperäinen aikasarja, pyydetyt differenssit sekä niitä vastaavat auto- ja osittaisautokorrelaatiofunktiot. Vihje: komennolla diff(ts,lag=2) saat aikasarjan ts toisen differenssin. Tiedosto Muuttuja Kuvaus Havaintoväli Aikasarjan pituus SALES Sales Erään tukkukaupan 1 kk n = 144 myynnin volyymi 13 / 13