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

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

Sovellettu todennäköisyyslaskenta B

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

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

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

ARMA mallien ominaisuudet ja rakentaminen

2. Tietokoneharjoitukset

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

STOKASTISET PROSESSIT

Dynaamiset regressiomallit

Aikasarjamallit. Pekka Hjelt

Ennustaminen ARMA malleilla ja Kalmanin suodin

Identifiointiprosessi

Sovellettu todennäköisyyslaskenta B

Auringonpilkkujen jaksollisuus

ARMA mallien rakentaminen, Kalmanin suodatin

Tilastollisen analyysin perusteet Luento 9: Moniulotteinen lineaarinen. regressio

ARMA mallien ominaisuudet ja rakentaminen

2. Teoriaharjoitukset

ARMA mallien rakentaminen, johdatus dynaamisiin regressiomalle

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

ARIMA- ja GARCH-mallit sekä mallin sovittaminen osakeaineistoon

Harjoitus 7 : Aikasarja-analyysi (Palautus )

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

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

Tilastollisen analyysin perusteet Luento 7: Lineaarinen regressio

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

Työvoiman tarpeen ennustaminen SARIMA-aikasarjamallilla

Yleistetyistä lineaarisista malleista

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Stationaariset stokastiset prosessit ja ARMA-mallit

Harha mallin arvioinnissa

1. Tietokoneharjoitukset

Esimerkki: Tietoliikennekytkin

pitkittäisaineistoissa

6.5.2 Tapering-menetelmä

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Mat Tilastollisen analyysin perusteet, kevät 2007

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

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

Logistinen regressio, separoivat hypertasot

Harjoitus 3: Regressiomallit (Matlab)

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

Laskuharjoitus 9, tehtävä 6

Mat Tilastollisen analyysin perusteet, kevät 2007

Sovellettu todennäköisyyslaskenta B

S Laskennallinen Neurotiede

9. Tila-avaruusmallit

A250A0050 Ekonometrian perusteet Tentti

Harjoitus 3: Regressiomallit (Matlab)

Diskriminanttianalyysi I

pitkittäisaineistoissa

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

VARIANSSIANALYYSI ANALYSIS OF VARIANCE

Väliestimointi (jatkoa) Heliövaara 1

Erikoistyö: Alkoholin kulutusmenojen ennustaminen

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

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

11. laskuharjoituskierros, vko 15, ratkaisut

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

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

Identifiointiprosessi

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

Pienimmän neliösumman menetelmä (PNS)

Regressioanalyysi. Kuusinen/Heliövaara 1

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

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

Sovellettu todennäköisyyslaskenta B

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

4.0.2 Kuinka hyvä ennuste on?

Tilastollisen analyysin perusteet Luento 6: Korrelaatio ja riippuvuus tilastotieteessä

Harjoitus 6 -- Ratkaisut

Pienimmän neliösumman menetelmä (PNS)

Vastepintamenetelmä. Kuusinen/Heliövaara 1

Load

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

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

Pienimmän neliösumman menetelmä (PNS)

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

Harjoitukset 4 : Paneelidata (Palautus )

Ilkka Mellin Aikasarja-analyysi ARMA-mallit

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Harjoitus 9: Excel - Tilastollinen analyysi

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Menetelmä Markowitzin mallin parametrien estimointiin (valmiin työn esittely)

xi = yi = 586 Korrelaatiokerroin r: SS xy = x i y i ( x i ) ( y i )/n = SS xx = x 2 i ( x i ) 2 /n =

9. laskuharjoituskierros, vko 12-13, ratkaisut

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. 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",lag.max=25) pacf(intel_close,main="pacf",lag.max=25) 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 ARIMA-osan asteet muodossa (p,h,q), missä p, d ja q kuten luentokalvoissa. Lisäksi on mahdollista antaa määre seasonal, joka vastaa kausiparametreja (P,H,Q). 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 aineston auto- ja osittaisautokorrelaatiofunktiot. 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",lag.max=25) pacf(malli$res,main="pacf",lag.max=25) 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: Box.test(residual,lag=h,fitdf=k,type="Ljung-Box") 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. 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") legend(16,68, legend=c("alkup.", "Sovite"), col=c("red","blue"),lty=c(1,1),cex=0.8) 3 / 13

Kurssi 60 62 64 66 68 Sales aikasarja AR(2) Sovite Aika 5 10 15 20 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("alkup.", "Ennuste"), col=c("red", "blue"), lty=c(1,1), cex=0.8) Kurssi 60 62 64 66 68 Sales aikasarja AR(2) Ennuste 5 10 15 20 Aika Kuva 4: Intel_close aikasarja punaisella ja 16 ensimmäisen havaintopisteen avulla estimoidun AR(2)-mallin ennuste sinisellä. 4 / 13

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) 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. 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. 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,44) for (i in 1:47) { spots_bl[i]=box.test(malli2$res,lag=(i+k),fitdf=k, type="ljung-box")$p.value } 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. 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 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ä 6 / 13

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,44) 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 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. Kommentteja: (1) Auringonpilkkujen määrää kuvaava aikasarja Spots osoittautuu vaikeaksi mallintaa SARIMA-malleilla. Eräs ongelman aiheuttajista on se, että kausivaihtelun jak- 7 / 13

son 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: 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) Lkm. 0 50 100 150 Spots aikasarja AR(2) Sovite ARMA(3,1) Sovite 1750 1800 1850 1900 1950 Aika Kuva 8: Spots aikasarja punaisella, AR(2)-sovite sinisellä ja ARMA(3,1)-sovite vihreällä. 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. 8 / 13

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") 43 aika askeleen ennuste 5 aika askeleen ennuste 0 50 100 150 200 0 50 100 150 200 1750 1800 1850 1900 1950 1750 1800 1850 1900 1950 Kuva 9: Spots aikasarja punaisella ja AR(2)-mallin ennuste sinisellä. 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 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] 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 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. 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 plot(forecast(malli,h=24)) 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. 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)) 10 / 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 11: Aikasarjan Sales SARIMA(2,1,0)(1,1,0) 12 -mallin residuaalien auto- ja osittaisautokorrelaatiofunktio. # 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 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ä. 11 / 13

Kommentti: Aikasarja Sales osoittautuu vaikeaksi mallintaa täydellisesti. Katsotaan vielä miten hyvin SARIMA(2, 1, 0)(1, 1, 0) 12 estimaatit sopivat 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ä. Aikasarjan verifioimisen voi toteuttaa kuten aiemmissa kohdissa. 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 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") 12 / 13

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