4. Tietokoneharjoitukset

Samankaltaiset tiedostot
4. Tietokoneharjoitukset

Viikon 5 harjoituksissa käytämme samoja aikasarjoja kuin viikolla 4. Tiedosto Muuttuja Kuvaus Havaintoväli Aikasarjan pituus

3. Tietokoneharjoitukset

Tiedosto Muuttuja Kuvaus Havaintoväli Aikasarjan pituus. Intelin osakekurssi. (Pörssi-) päivä n = 20 Intel_Volume. Auringonpilkkujen määrä

6. Tietokoneharjoitukset

805324A (805679S) Aikasarja-analyysi Harjoitus 3 (2016)

805324A (805679S) Aikasarja-analyysi Harjoitus 6 (2016)

MS-C2128 Ennustaminen ja aikasarja-analyysi ARMA esimerkkejä

805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016)

8. Muita stokastisia malleja 8.1 Epölineaariset mallit ARCH ja GARCH

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Kertaus. MS-C2128 Ennustaminen ja Aikasarja-analyysi, Heikki Seppälä

Sovellettu todennäköisyyslaskenta B

Kertaus. MS-C2128 Ennustaminen ja Aikasarja-analyysi, Lauri Viitasaari

Dynaamiset regressiomallit

Tilastollisen analyysin perusteet Luento 8: Lineaarinen regressio, testejä ja luottamusvälejä

STOKASTISET PROSESSIT

ARMA mallien ominaisuudet ja rakentaminen

2. Tietokoneharjoitukset

Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos /Malmivuori MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi,

Aikasarjamallit. Pekka Hjelt

Ennustaminen ARMA malleilla ja Kalmanin suodin

Identifiointiprosessi

Sovellettu todennäköisyyslaskenta B

Auringonpilkkujen jaksollisuus

ARMA mallien rakentaminen, Kalmanin suodatin

ARMA mallien rakentaminen, johdatus dynaamisiin regressiomalle

Tilastollisen analyysin perusteet Luento 9: Moniulotteinen lineaarinen. regressio

ARMA mallien ominaisuudet ja rakentaminen

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

2. Teoriaharjoitukset

Harjoitus 7 : Aikasarja-analyysi (Palautus )

805324A (805679S) Aikasarja-analyysi Harjoitus 5 (2016)

1. Tietokoneharjoitukset

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

Työvoiman tarpeen ennustaminen SARIMA-aikasarjamallilla

ARIMA- ja GARCH-mallit sekä mallin sovittaminen osakeaineistoon

Tilastollisen analyysin perusteet Luento 7: Lineaarinen regressio

Laboratoriotyö 2: Sähkönkulutuksen ennustaminen ja hankinnan optimointi

Yleistetyistä lineaarisista malleista

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Stationaariset stokastiset prosessit ja ARMA-mallit

Laskuharjoitus 9, tehtävä 6

Esimerkki: Tietoliikennekytkin

Harha mallin arvioinnissa

Sovellettu todennäköisyyslaskenta B

Mat Tilastollisen analyysin perusteet, kevät 2007

Harjoitus 3: Regressiomallit (Matlab)

6.5.2 Tapering-menetelmä

Mat Tilastollisen analyysin perusteet, kevät 2007

pitkittäisaineistoissa

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Keskipisteen lisääminen 2 k -faktorikokeeseen (ks. Montgomery 9-6)

Harjoitus 3: Regressiomallit (Matlab)

Estimointi. Estimointi. Estimointi: Mitä opimme? 2/4. Estimointi: Mitä opimme? 1/4. Estimointi: Mitä opimme? 3/4. Estimointi: Mitä opimme?

Logistinen regressio, separoivat hypertasot

Jos nyt on saatu havaintoarvot Ü ½ Ü Ò niin suurimman uskottavuuden

Erikoistyö: Alkoholin kulutusmenojen ennustaminen

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

S Laskennallinen Neurotiede

Johdatus tilastotieteeseen Estimointi. TKK (c) Ilkka Mellin (2005) 1

9. Tila-avaruusmallit

A250A0050 Ekonometrian perusteet Tentti

Ilkka Mellin Tilastolliset menetelmät Osa 2: Otokset, otosjakaumat ja estimointi Estimointi

Diskriminanttianalyysi I

Vastepintamenetelmä. Kuusinen/Heliövaara 1

Ilkka Keskiväli Kiinan energiankäytön aikasarja-analysointi

Harjoitus 9: Excel - Tilastollinen analyysi

VARIANSSIANALYYSI ANALYSIS OF VARIANCE

pitkittäisaineistoissa

Väliestimointi (jatkoa) Heliövaara 1

031021P Tilastomatematiikka (5 op) kertausta 2. vk:een

11. laskuharjoituskierros, vko 15, ratkaisut

Tilastollisen analyysin perusteet Luento 6: Korrelaatio ja riippuvuus tilastotieteessä

Osa 2: Otokset, otosjakaumat ja estimointi

Identifiointiprosessi

Pienimmän neliösumman menetelmä (PNS)

χ = Mat Sovellettu todennäköisyyslasku 11. harjoitukset/ratkaisut

Regressioanalyysi. Kuusinen/Heliövaara 1

7 Osa 7: Pidempiä esimerkkejä R:n käytöstä

Yleinen lineaarinen malli eli usean selittäjän lineaarinen regressiomalli

Estimointi. Vilkkumaa / Kuusinen 1

Sovellettu todennäköisyyslaskenta B

Männyn laaturajojen integrointi runkokäyrän ennustamisessa. Laura Koskela Tampereen yliopisto

Harjoitus 6 -- Ratkaisut

4.0.2 Kuinka hyvä ennuste on?

Pienimmän neliösumman menetelmä (PNS)

MTTTA1 Tilastomenetelmien perusteet 5 op Luento , osa 1. 1 Kokonaisuudet johon opintojakso kuuluu

Pienimmän neliösumman menetelmä (PNS)

Load

TIE- JA VESIRAKENNUSHALLITUS TUTKIMUSKESKUS INSINÖÖRITOIMISTO PENTTI POLVINEN KY TVH HELSINKI ii / / / - 1)

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin

edellyttää valintaa takaisinpanolla Aritmeettinen keskiarvo Jos, ½ Ò muodostavat satunnaisotoksen :n jakaumasta niin Otosvarianssi Ë ¾

Harjoitukset 4 : Paneelidata (Palautus )

Pelaisitko seuraavaa peliä?

Ilkka Mellin Aikasarja-analyysi ARMA-mallit

Transkriptio:

4. Tietokoneharjoitukset Demotehtävät 4.1 Tarkastellaan seuraavia aikasarjoja. 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 määrä 1v n = 215 SALES Sales Erään tukkukaupan 1kk n = 144 myynnin volyymi Yritä löytää jokaiselle aikasarjalle paras mahdollinen ARMA-perheeseen kuuluva malli. Käytä aikasarjan viimeistä viidesosaa mallin verifioimiseen. Ratkaisu. Ladataan aluksi paketti forecast. Paketin asentamisessa voi olla ongelmia Linux koneille. R-ohjelmistoon on saatavilla muitakin paketteja ARMA-mallejen estimoimiseksi, joista lisätietoa voi etsiä googlettamalla. install.packages("forecast") library(forecast) # install.packages() tarvitsee ajaa vain kerran # library() tulee ajaa aina kun haluat jonkin paketin funktioita käyttöön INTEL <- read.table("intel.txt",header=t) SUNSPOT <- read.table("sunspot.txt",header=t,row.names=1) SALES <- read.table("sales.txt",header=t) Intel_Close <- ts(intel$intel_close) Spots <- ts(sunspot,start=1749) Sales <- ts(sales$sales,frequency=12) Intel_Close Lasketaan autokorrelaatiot ja osittaisautokorrelaatiot. acf(intel_close,main="acf") pacf(intel_close,main="pacf") Kuvasta 1 nähdään että PACF näyttää katkeavan viiveellä 2 ja ACF vaimenee eksponentiaalisesti. Yritetään sovittaa AR(2)-malli. ARMA-mallien sovitus, tapahtuu komennolla Arima. Funktion ensimmäinen parametri on sovitettava aikasarja, order on 1 / 13

ACF PACF 0.4 0.0 0.4 0.8 0.4 0.0 0.2 0.4 0.6 0.8 0 5 10 15 5 10 15 Kuva 1: Intel_Close aineiston auto- ja osittaisautokorrelaatiofunktiot. ARIMA-osan asteet muodossa (p,h,q), missä p, h ja q kuten luentokalvoissa. Lisäksi on mahdollista antaa määre seasonal, joka vastaa kausiparametreja (P,H,Q). Arima(Intel_Close, order=c(2,0,0)) Series: Intel_Close ARIMA(2,0,0) with non-zero mean Coefficients: ar1 ar2 intercept 1.3342-0.5263 64.3965 s.e. 0.1850 0.2038 1.0501 sigma^2 estimated as 0.8844: log likelihood=-28.2 AIC=64.39 AICc=67.06 BIC=68.38 Estimoitu malli sisältää vakion (Intercept), sen voi asettaa nollaksi parametrilla include.mean=f. Arima estimoi parametrit oletuksena CSS-ML (conditional sum of squares - maximum likelihood) menetelmällä. Menetelmässä alkuarvaus saadaan CSS menetelmällä, jonka jälkeen estimoidaan suurimman uskottavuuden (SU) estimaatit. Lisätietoa SU-menetelmästä viikon 4 luentokalvoissa. Sovitetaan AR(2)-malli ja tutkitaan residuaaleja: malli <- Arima(Intel_Close, order=c(2,0,0)) acf(malli$res,main="acf") pacf(malli$res,main="pacf") Kuvan 2 perusteella residuaalit eivät näytä autokorreloituneilta. Hyvässä sovitteessa residuaalit on lähellä satunnaista kohinaa. Tehdään Ljung-Box testi residuaaleille. Testi suoritetaan komennolla: 2 / 13

ACF PACF 0.4 0.0 0.4 0.8 0.4 0.2 0.0 0.2 0.4 0 5 10 15 5 10 15 Kuva 2: Intel_Close aineistoon sovitetun AR(2)-mallin residuaalien auto- ja osittaisautokorrelaatiofunktiot. Box.test(residual,lag=h,fitdf=k,type="Ljung-Box") missä h on viive, ja k estimoitujen parametrien määrä mallissa. AR(2)-mallissa k=2. Ljung-Box testi voidaan tehdä viiveille (lag), jotka ovat suurempia kuin k+1 (katso luento 5). Huomaa, että funktio Box.test tekee oletuksena ns. Box-Pierce testin. Tilastotieteen kirjallisuudessa Ljung-Box on kuitenkin todettu Box-Pierce testiä paremmaksi. #Alustetaan tyhjä vektori ljung_box <- c(rep(na,17)) k <- 2 for(i in 1:17){ ljung_box[i] <- Box.test(malli$res,lag=(i+k), fitdf=k, type="ljung-box")$p.value } [1] 0.3786061 0.4713735 0.5906405 0.6158862 0.6485075 0.7648594 0.7350293 [8] 0.5646156 0.6414046 0.5078315 0.4545944 0.5403243 0.5671877 0.1945652 [15] 0.1691062 0.2126523 0.2622378 Ljung-Box testin nollahypoteesi on, että korrelaatiota ei ole. Testin p-arvot ovat kaikilla viivellä selvästi yli merkitsevyystason 5%. Täten Ljung-Box testin perusteella AR(2) on riittävä malli. Piirretään sovite ja alkuperäinen aikasarja samaan kuvaan. sovite <- fitted(malli) plot(sovite,type="b",col="blue",ylim=c(60,68), ylab="kurssi",xlab="aika") lines(intel_close,col="red",type="b") 3 / 13

legend(16,68, legend=c("aikasarja", "Sovite"), col=c("red","blue"),lty=c(1,1),cex=0.8) Kurssi 60 62 64 66 68 Aikasarja Sovite 5 10 15 20 Aika Kuva 3: Intel_close aikasarja punaisella ja AR(2)-sovite sinisellä. Kuvan 3 perusteella sovite vastaa melko hyvin alkuperäistä aikasarjaa. Estimoidaan AR(2)-malli ensimmäisestä 16 havainnosta ja katsotaan miten hyvin malli ennustaa 4 viimeistä havaintoa. malli_ver <- Arima(Intel_Close[1:16],order=c(2,0,0)) ennuste <- forecast(malli_ver,h=4,level=false)$mean #level=false, jättää luottamusvälit pois plot(intel_close,col="red",type="b",ylim=c(60,68), ylab="kurssi",xlab="aika") lines(ennuste,col="blue",type="b") legend(16,68, legend=c("aikasarja", "Ennuste"), col=c("red", "blue"), lty=c(1,1), cex=0.8) Kuvasta 4 nähdään, että 16 ensimmäistä havaintoa eivät ennusta erityisen hyvin viimeistä neljää havaintoa, vaikka AR(2)-malli todettiin riittäväksi. Tämä selittyy sillä, että alkuperäinen aikasarja on suhteellisen lyhyt. Varsinkin lyhyitä aikasarjoja ennustaessa tulee olla siis hyvin varovainen. Spots acf(spots,lag.max=50) pacf(spots,lag.max=50) Kuvan 5 perusteella PACF näyttää katkeavan viiveellä 2, vaikka osittaisautokorrelaatio viiveillä 6-8, 29 ja 48 menee merkitsevyysrajan yli. Sovitetaan AR(2)-malli ja tutkitaan residuaaleja. 4 / 13

Kurssi 60 62 64 66 68 Aikasarja Ennuste 5 10 15 20 Aika Kuva 4: Intel_close aikasarja punaisella ja 16 ensimmäisen havaintopisteen avulla estimoidun AR(2)-mallin ennuste sinisellä. ACF PACF 0.4 0.0 0.2 0.4 0.6 0.8 1.0 0.5 0.0 0.5 0 10 20 30 40 50 0 10 20 30 40 Kuva 5: Spots aikasarjan auto- ja osittaisautokorrelaatiofunktio. malli2 <- Arima(Spots,order=c(2,0,0)) acf(malli2$res) pacf(malli2$res) Kuvasta 6 nähdään että viiveillä 9-11 residuaalien auto- ja osittaisautokorrelaatio ovat merkitsevyystason yläpuolella. Tehdään Ljung-Box testi residuaaleille. k <- 2 spots_bl <- rep(na,47) 5 / 13

AR(2) mallin residuaalien ACF AR(2) mallin residuaalien PACF 0.0 0.2 0.4 0.6 0.8 1.0 0 10 20 30 40 50 0.15 0.05 0.05 0.15 0 10 20 30 40 50 Kuva 6: Aikasarjan Spots AR(2)-mallin residuaalien auto- ja osittaisautokorrelaatiofunktio. for (i in 1:47) { spots_bl[i]=box.test(malli2$res,lag=(i+k),fitdf=k, type="ljung-box")$p.value } round(spots_bl,3) [1] 0.093 0.072 0.153 0.210 0.298 0.360 0.085 0.033 0.004 0.005 0.008 [12] 0.013 0.020 0.026 0.034 0.039 0.053 0.067 0.090 0.090 0.116 0.146 [23] 0.181 0.149 0.067 0.078 0.077 0.095 0.075 0.092 0.099 0.107 0.118 [34] 0.086 0.099 0.067 0.077 0.088 0.101 0.109 0.122 0.143 0.167 0.103 AR(2)-malli ei ole Ljung-Box testien perusteella riittävä selittämään aikasarjan Spots käyttäytymistä. Ljung-Box testin nollahypoteesi hylätään viiveillä 10-18. Huomaa että Ljung-Box testin ensimmäinen arvo vastaa viivettä k + 1. Kokeillaan nyt automaattista SARIMA-mallien sijoitusta ja tutkitaan mallin residuaaleja. malli.auto <- auto.arima(spots) malli.auto acf(malli.auto$res,lag.max=50) pacf(malli.auto$res,lag.max=50) Series: Spots ARIMA(3,0,1) with non-zero mean Coefficients: ar1 ar2 ar3 ma1 intercept 0.6574 0.3494-0.5433 0.6580 49.1226 s.e. 0.2000 0.2622 0.1308 0.2128 3.4416 6 / 13

sigma^2 estimated as 266.4: log likelihood=-906.65 AIC=1825.3 AICc=1825.7 BIC=1845.52 Algoritmi sovittaa parhaan mahdollisen SARIMA-mallin annettuun aikasarjaan käyttäen minimoitavana mallinvalintakriteerinä joko AIC, AICc tai BIC. Huomaa, että SARIMA-mallien sovittaminen aikasarjoihin ei ole yleensä helppoa ja ei ole olemassa täydellistä algoritmia joka löytää aina parhaan mahdollisen mallin. Tästä syystä funktioon auto.arima ei tule luottaa sokeasti. Funktio lisäksi valitsee usein tarpeettoman monimutkaisia SARIMA-perheen malleja, jotka ovat vain marginaalisesti parempia suhteessa johonkin yksinkertaiseen malliin. Kuvan 7 perusteella viiveillä 9,10 ja 11 residuaalien auto- ja osittaisautokorrelaatio ovat merkitseviä myös ARMA(3,1)-sovitteen residuaaleille. Lisäksi Ljung-Box testin nollahypoteesi hylätään viiveillä 10-19. Ljung-Box testien tulokset alla. Täten myöskään ARMA(3,1)-malli ei testien perusteella riittävä selittämään aikasarjan spots käyttäytymistä. k <- 4 spots_bl <- rep(na,47) for (i in 1:47) { spots_bl[i]=box.test(malli.auto$res,lag=(i+k),fitdf=k, type="ljung-box")$p.value } round(spots_bl,3) [1] 0.073 0.144 0.274 0.366 0.055 0.019 0.002 0.002 0.004 0.008 0.013 [12] 0.020 0.025 0.030 0.043 0.057 0.077 0.082 0.108 0.136 0.171 0.117 [23] 0.054 0.065 0.073 0.082 0.065 0.083 0.091 0.103 0.113 0.071 0.082 [34] 0.053 0.060 0.071 0.079 0.084 0.089 0.104 0.124 0.072 0.085 0.093 Kommentteja: (1) Auringonpilkkujen määrää kuvaava aikasarja Spots osoittautuu vaikeaksi mallintaa SARIMA-malleilla. Eräs ongelman aiheuttajista on se, että kausivaihtelun jakson pituus n. 11 vuotta ei ole täysin vakio. Täten kausi ARIMA-malleja on vaikea sovittaa Spots aikasarjaan. (2) Auringonpilkku-aikasarjaa on tutkittu paljon. Tämänhetkisen käsityksen mukaan eräs parhaista kandidaateista selittämään sen käyttäytymistä, on ns. kynnysmalli (threshold model). Piirretään sovitteet ja aikasarja samaan kuvioon: 7 / 13

ARMA(3,1) mallin residuaalien ACF ARMA(3,1) mallin residuaalien PACF 0.0 0.2 0.4 0.6 0.8 1.0 0.10 0.00 0.10 0.20 0 10 20 30 40 50 0 10 20 30 40 50 Kuva 7: Aineistosta Spots auto.arima-funktiolla valitun mallin residuaalien ACF ja PACF. sovite.sun <- fitted(malli2) sovite.auto <- fitted(malli.auto) plot(sovite.sun,type="b",col="blue", ylab="lkm.",xlab="aika") lines(spots,col="red",type="b") lines(sovite.auto,col="green",type="b") legend("topleft", legend=c("spots-aikasarja", "AR(2)-Sovite", "ARMA(3,1)-Sovite"), col=c("red","blue","green"),lty=c(1,1),cex=0.8) Kuvasta 8 nähdään että molemmat sovitteet seuraavat hyvin alkuperäisen aikasarjan käyttäytymistä. Ennustetaan viimeiset 43 havaintoa käyttäen AR(2)-mallia, samat voidaan toistaa myös ARMA(3,1)-mallille. malli_ver <- Arima(Spots[1:172],order=c(2,0,0)) # Korjataan ennuste alkamaan oikeasta ajanhetkestä ennuste <- ts(forecast(malli_ver,h=43)$mean,start=1921) plot(spots,col="red",type="l",ylim=c(0,200)) lines(ennuste,col="blue",type="l") Kuvasta 9 nähdään että ennusteet pitkälle tulevaisuuteen ovat melko epäluotettavia. Toisaalta muutaman aika-askeleen ennustaminen onnistuu suhteellisen hyvin. Pitkän aikavälin ennustamista huonontaa lisäksi se, että valitut mallit eivät ole riittäviä selittämään aikasarjan Spots käyttäytymistä. Sales Kotitehtävän perusteella Sales ei näytä stationaariselta, mutta D 12 DSales näyttää. Kotitehtävässä laskettujen auto- ja osittaisautokorrelaatiofunktioiden perusteella Sales voisi 8 / 13

Aika Lkm. 1750 1800 1850 1900 1950 0 50 100 150 Spots aikasarja AR(2) Sovite ARMA(3,1) Sovite Kuva 8: Spots aikasarja punaisella, AR(2)-sovite sinisellä ja ARMA(3,1)-sovite vihreällä. 43 aika askeleen ennuste 1750 1800 1850 1900 1950 0 50 100 150 200 5 aika askeleen ennuste 1750 1800 1850 1900 1950 0 50 100 150 200 Kuva 9: Spots aikasarja punaisella ja AR(2)-mallin ennuste sinisellä. noudattaa jotain SARIMA-perheen mallia. Etsitään sopivaa mallia auto.arima avulla ja tutkitaan residuaaleja. malli_sales <- auto.arima(sales) Series: Sales ARIMA(2,1,2)(1,1,2)[12] 9 / 13

ACF PACF 0.2 0.0 0.2 0.4 0.6 0.8 1.0 0.2 0.1 0.0 0.1 0.2 0 1 2 3 4 0 1 2 3 4 Kuva 10: Aikasarjan Sales SARIMA(2,1,2)(1,1,2) 12 -mallin residuaalien auto- ja osittaisautokorrelaatiofunktio. Coefficients: ar1 ar2 ma1 ma2 sar1 sma1 sma2-0.7979-0.4273 0.1632-0.1135-0.3015-0.1214-0.2835 s.e. 0.1918 0.1462 0.2025 0.1707 0.5373 0.5186 0.2546 sigma^2 estimated as 23.85: log likelihood=-392.24 AIC=800.48 AICc=801.66 BIC=823.48 acf(malli_sales$res,lag.max=50) pacf(malli_sales$res,lag.max=50) # nyt sovitettavia parametreja 2+2+1+2=7 k <- 7 sales_bl <- rep(na,47) for (i in 1:47) { sales_bl[i]=box.test(malli_sales$res,lag=(i+k),fitdf=k, type="ljung-box")$p.value } round(sales_bl,3) [1] 0.041 0.118 0.026 0.016 0.032 0.033 0.043 0.010 0.007 0.004 0.006 [12] 0.010 0.016 0.024 0.009 0.000 0.000 0.001 0.001 0.000 0.001 0.001 [23] 0.001 0.001 0.001 0.001 0.001 0.002 0.002 0.002 0.002 0.003 0.002 [34] 0.003 0.004 0.006 0.007 0.008 0.002 0.001 0.002 0.002 0.002 0.003 [45] 0.004 0.005 0.004 10 / 13

SARIMA(2,1,2)(1,1,2) 12 -malli ei ole Ljung-Box testien perusteella riittävä. Testin nollahypoteesi hylätään 5% merkitsevyystasolla kaikilla paitsi viiveellä 9. ACF PACF 0.2 0.0 0.2 0.4 0.6 0.8 1.0 0.2 0.1 0.0 0.1 0.2 0 1 2 3 4 0 1 2 3 4 Kuva 11: Aikasarjan Sales SARIMA(2,1,0)(1,1,0) 12 -mallin residuaalien auto- ja osittaisautokorrelaatiofunktio. Osittais- ja autokorrelaatiofunktioiden perusteella, sopiva malli voisi olla esimerkiksi SARIMA(2,1,0)(1,1,0) 12. malli_sales2 <- Arima(Sales,order=c(2,1,0),season=c(1,1,0)) # Huomaa, että Arima() ei toimi jos aikasarjan frequency parametri on # asetettu väärin. Frequency voidaan joko määrittää joko funktiolla ts() # tai Arima() funktiossa asettamalla season=list(order=c(1,1,0),period=12) acf(malli_sales2$res,lag.max=50) pacf(malli_sales2$res,lag.max=50) # nyt sovitettavia parametreja 2+1=3 k <- 3 sales_bl2 <- rep(na,47) for (i in 1:47) { sales_bl2[i]=box.test(malli_sales2$res,lag=(i+k),fitdf=k, type="ljung-box")$p.value } round(sales_bl2,3) [1] 0.725 0.527 0.282 0.384 0.516 0.631 0.347 0.198 0.229 0.238 0.228 [12] 0.100 0.051 0.034 0.045 0.062 0.084 0.111 0.051 0.004 0.001 0.001 [23] 0.002 0.001 0.002 0.002 0.003 0.002 0.002 0.002 0.002 0.003 0.004 [34] 0.002 0.002 0.003 0.002 0.003 0.004 0.005 0.006 0.008 0.001 0.001 [45] 0.001 0.001 0.001 11 / 13

Nyt Ljung-Box testin nollahypoteesi hyväksytään viiveillä 4-16 ja 19-22. Vaikka sovite on parempi suhteessa auto.arima valitsemaan malliin, silti tulosta ei voida pitää kovin onnistuneena. Parempaa mallia on kuitenkin vaikeata löytää ainakaan SARIMAperheestä. Kommentti: Aikasarja Sales osoittautuu vaikeaksi mallintaa täydellisesti. Katsotaan vielä miten hyvin estimoitu SARIMA(2, 1, 0)(1, 1, 0) 12 malli sopii alkuperäiseen aikasarjaan. Kurssi 150 200 250 1970 1972 1974 1976 1978 1980 1982 Aika Kuva 12: Aikasarja Sales punaisella ja SARIMA(2,1,0)(1,1,0) 12 -mallin sovitteet sinisellä. Katsotaan miltä mallin ennuste näyttää 48 aika-askelta (4 vuotta) eteenpäin: sovite.sales <- fitted(malli_sales2) plot(sovite.sales,type="b",col="blue", ylab="kurssi",xlab="aika") lines(sales,col="red",type="b") ennuste_sales <- forecast(malli_sales2,h=48)$mean 12 / 13

plot(sales,col="red",type="b",ylim=c(100,340), xlim=c(1970,1987),ylab="lkm.",xlab="aika") lines(ennuste_sales,col="blue",type="b") Lkm. 100 150 200 250 300 1970 1975 1980 1985 Aika Kuva 13: Aikasarja Sales punaisella ja SARIMA(2,1,0)(1,1,0)-mallin ennuste sinisellä. Kuvasta 13 nähdään, että saatava ennuste neljä vuotta tulevaisuuteen näyttää järkevältä, vaikka SARIMA(2, 1, 0)(1, 1, 0) 12 -malli ei ole Ljung-Box-testien perusteella riittävä Kotitehtävät 4.2 Tiedostoon MLCO2 on tallennettu aikasarja MLCO2, joka sisältää Mauna Loa-tulivuorella tehtyjen hiilidioksidimittausten tulokset 216 kuukaudelta. Aikasarjaa on tarkasteltu alustavasti viikon 3 tietokoneharjoituksissa. a) Etsi paras mahdollinen SARIMA-perheen malli aikasarjalle MLCO2. b) Ennusta aikasarjaa 2 ja 24 askelta eteenpäin. Pohdi ennusteiden hyvyyttä. 13 / 13