Teknillinen korkeakoulu

MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. harjoitukset / Tehtävät
Kotitehtävä: 3,4
Tehtävä 2.1.
Jatkoa tietokonetehtävälle 1.2:
(a)
Piirrä aineistosta pisteparvikuvaaja (KULUTUS, SAIRAST) ja siihen estimoitu
regressiosuora. KULUTUS on selittävä muuttuja.
(b)
Määrää estimoidusta mallista sovitteet yˆi ja residuaalit ei ja tallenna ne tiedostoon
”tupakka.txt” muuttujiksi FIT (= sovite) ja RES (= residuaali).
(c)
Piirrä pistediagrammit (SAIRAST, FIT) ja (FIT, RES).
(d)
Tutki havainnon 7 = USA:n poikkeavuutta kohdassa (c) piirretyissä kuviossa.
(e)
Tutki havainnon 7 = USA poikkeavuutta Cookin etäisyyksien avulla. Voisiko USA olla
poikkeava havainto?
(f)
Estimoi malli ilman havaintoa USA ja vertaa tuloksia tehtävän 1.4. tuloksiin.
Tehtävä 2.1. – Mitä opimme?
Tehtävässä tarkastellaan regressioanalyysin tulosten havainnollistamista sekä
poikkeavien havaintojen tunnistamista ja vaikutusta.
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Tehtävä 2.1. – Ratkaisu:
data=read.table(”tupakka.txt”,header=T,sep=”\t”)
tupakka = data[,c(“SAIRAST”,”KULUTUS”)]
malli=lm(SAIRAST~KULUTUS,data=tupakka)
(a)
Pisteparvikuvaaja:
plot(tupakka[,”KULUTUS”],tupakka[,”SAIRAST”])
abline(malli,col=”red”)
USA
Havainnot voidaan merkitä kuvaajaan komennon identify() avulla. (Käyttö ei ihan
triviaalia, tule harjoituksiin jos haluat lisätietoa komennosta.)
(b)
Sovitteet ja residuaalit ovat tallennettuna malliin nimillä ”fit” ja” res”, näihin voidaan
viitata seuraavasti:
malli$fit
malli$res
Tallennetaan sovitteet
yˆi
(fitted values = FIT) ja residuaalit ei (residuals = RES).
tupakka$FIT=malli$fit
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
tupakka$RES=malli$res
Kirjoitetaan vielä data-frame tupakka tiedostoon tupakka.txt
write.table(tupakka,”tupakka2.txt”)
(c)
Pistediagrammi (Selitettävä, Sovite).
Piirretään sovitteet
yˆi
selitettävän muuttujan SAIRAST arvoja vastaan.
plot(tupakka$SAIRAST,tupakka$FIT)
USA
Diagrammi kuvaa mallin hyvyyttä:
( yi , yˆi ) , i = 1, 2, … , n ovat suoraa
–
Malli on sitä parempi, mitä lähempänä pisteet
viivaa.
–
Myös poikkeavat havainnot erottuvat usein selvästi.
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Huomaa, että pisteistä ( yi , yˆi ) , i = 1, 2, … , n määrätty Pearsonin tulomomenttikorrelaatiokertoimen neliö on sama kuin selitysaste:
Cor( y, yˆ )2  R2
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Pistediagrammi (Sovite, Residuaali).
Piirretään residuaalit ei sovitteita
yˆi
vastaan.
plot(malli$fit,malli$res)
USA
Diagrammi kuvaa mallin hyvyyttä:
(d)
( yˆi , ei ) , i = 1, 2, … , n ovat suoraa
–
Malli on sitä parempi, mitä lähempänä pisteet
e = 0.
–
Myös poikkeavat havainnot erottuvat usein selvästi.
Havainnon 7 = USA poikkeavuus näkyy kaikissa yo. kuvissa.
MS-C2128 Ennustaminen ja aikasarja-analyysi
(e)
2. tietokoneharjoitukset
Talletetaan Cookin etäisyydet (DIST) sarakkeeksi ja piirretään niitä kuvaamaan
pistediagrammi, jossa vaaka-akselilla on muuttuja MAA.
cooks.distance(malli)
tupakka$DIST=cooks.distance(malli)
n <- dim(tupakka)[1]
plot(seq(1,n),cooks.distance(malli))
USA
(f)
Estimoidaan malli ilman havaintoa 7 = USA.
malli2=lm(SAIRAST[-7]~KULUTUS[-7],data=tupakka)
summary(malli2)
Call:
lm(formula = SAIRAST[-7] ~ KULUTUS[-7])
Residuals:
Min
1Q
-62.353 -28.923
Coefficients:
Median
-7.861
3Q
35.321
Max
66.919
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Estimate Std. Error t value Pr(>|t|)
(Intercept) 13.55343
28.26713
0.479
0.644
KULUTUS[-7] 0.35767
0.04547
7.867 4.93e-05 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 44.92 on 8 degrees of freedom
Multiple R-squared: 0.8855, Adjusted R-squared: 0.8712
F-statistic: 61.88 on 1 and 8 DF, p-value: 4.928e-05
Kulmakertoimen estimaatti on kasvanut arvosta 0.23 arvoon 0.36. Tämä todistaa
(jäljelle jääneiden 10 maan joukossa) paljon voimakkaammin tupakoinnin
vaarallisuudesta.
Kysymys: Saako havainnon 7 =USA:n poistaa?
Vastaus:
USA:n poikkeuksellisen pieni keuhkosyöpätapausten suhteellinen lukumäärä
saattoi johtua siitä, että siellä savukkeet olivat erilaisia (tupakan laatu oli
miedompaa ja savukkeissa oli filtterit) kuin muissa tutkimuksen maissa.
Jos näin oli, USA:ta voidaan pitää poikkeavana havaintona, jonka
sulkeminen pois estimoinnista on luvallista. Muista, että havaintoja ei voida
sivuuttaa ilman päteviä perusteluja!
Tehtävä 2.2.
Sementin kovettuessa kehittyy lämpöä, jonka määrä riippuu sementin koostumuksesta.
Tiedostossa HALD.txt on seuraavat tiedot 13 erilaisesta sementtierästä:
HEAT
= lämpömäärä cal/g
CHEM1, CHEM2, CHEM3, CHEM4 = sementin ainesosia (% kuiva-aineesta)
(a)
Estimoi regressiomalli, jossa ovat mukana kaikki selittäjät. Vertaile kertoimien
tilastollista merkitsevyyttä ja tarkastele vastaavien selittäjien varianssin inflaatiotekijöitä.
(b)
Etsi paras selittäjien yhdistelmä käyttäen jotain mallinvalintakriteeriä, esim. Mallowsin
Cp-tunnuslukua.
Tehtävä 2.2. – Mitä opimme?
Tehtävässä näytetään miten erilaiset mallinvalintastrategiat saattavat johtaa erilaisiin
malleihin.
Tehtävä 2.2. – Ratkaisu:
Tavoitteena tehtävässä on selvittää, mitkä selittävistä tekijöistä
CHEM1, CHEM2, CHEM3, CHEM4
vaikuttavat selitettävän muuttujan
HEAT
käyttäytymiseen.
Ladataan aluksi data, ja asennetaan paketti ”car” myöhempää käyttöä varten.
install.packages("car")
library(car)
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
hald=read.table("hald.txt",header=T)
attach(hald)
Komento attach avulla voimme viitata suoraan muuttujan hald sarakkeisiin. Kokeile
kirjoittaa esimerkiksi CHEM1 R-konsoliin.
(a)
Täyden mallin estimointi
Tilanteessa, jossa ei olla selvillä, mitkä selittäjistä vaikuttavat selitettävän muuttujan
käyttäytymiseen, on usein järkevää estimoida ensin ns. täysi malli eli malli, jossa
käytetään selittäjinä kaikkia selittäjäkandidaatteja.
Ennen parhaan selitysmallin etsimistä on syytä tarkastella muuttujien välisiä
korrelaatioita:
cor(hald)
CHEM1
CHEM2
CHEM3
CHEM4
HEAT
SUM
CHEM1 1.00000000 0.2285795 -0.8241338 -0.2454451 0.7307175 0.05010722
CHEM2 0.22857947 1.0000000 -0.1392424 -0.9729550 0.8162526 -0.26044918
CHEM3 -0.82413376 -0.1392424 1.0000000 0.0295370 -0.5346707 -0.11025122
CHEM4 -0.24544511 -0.9729550 0.0295370 1.0000000 -0.8213050 0.32907694
HEAT
0.73071747 0.8162526 -0.5346707 -0.8213050 1.0000000 -0.16458053
SUM
0.05010722 -0.2604492 -0.1102512 0.3290769 -0.1645805 1.00000000
Muuttuja HEAT korreloi melko voimakkaasti kaikkien selittäjäkandidaattien kanssa.
Korrelaatio on positiivinen muuttujien CHEM1 ja CHEM2 kanssa ja negatiivinen
muuttujien CHEM3 ja CHEM4 kanssa. Selittäjäkandidaatit CHEM1 ja CHEM3
korreloivat voimakkaan negatiivisesti keskenään, samoin kandidaatit CHEM2 ja
CHEM4.
Estimoidaan seuraavaksi täysi malli
(1)
HEAT = 0 + 1 CHEM1 + 2 CHEM2 + 3 CHEM3 + 4 CHEM4 + 
taysimalli=lm(HEAT~CHEM1+CHEM2+CHEM3+CHEM4)
summary(taysimalli)
Estimointitulokset mallista (1):
Call:
lm(formula = HEAT ~ CHEM1 + CHEM2 + CHEM3 + CHEM4)
Residuals:
Min
1Q
-3.1750 -1.6709
Median
0.2508
3Q
1.3783
Max
3.9254
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 62.4054
70.0710
0.891
0.3991
CHEM1
1.5511
0.7448
2.083
0.0708 .
CHEM2
0.5102
0.7238
0.705
0.5009
CHEM3
0.1019
0.7547
0.135
0.8959
CHEM4
-0.1441
0.7091 -0.203
0.8441
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.446 on 8 degrees of freedom
Multiple R-squared: 0.9824, Adjusted R-squared: 0.9736
F-statistic: 111.5 on 4 and 8 DF, p-value: 4.756e-07
Mallin (1) selitysaste on korkea (98.2 %). F-testisuureen arvo nollahypoteesille
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
H0 : 1 = 2 = 3 = 4 = 0
on 111.5 ja sitä vastaava p-arvo on (4:llä desimaalilla) 0.0000, joten malli on
kokonaisuudessaan tilastollisesti erittäin merkitsevä ja ainakin yksi regressiokertoimista
1, 2, 3, 4 poikkeaa nollasta.
Kuitenkaan yksikään mallin (1) selittäjistä ei ole tilastollisesti merkitsevä, jos
merkitsevyyden rajana pidetään (tavanomaista) 5 %:n merkitsevyystasoa. Tämä johtuu
selittäjien multikollineaarisuudesta.
Selittäjien multikollineaarisuutta voidaan mitata VIF-kertoimilla. Jos selittäjän i ja
muiden selittäjien välillä ei ole lineaarista tilastollista riippuvuutta (eli selittäjä i on
ortogonaalinen muiden selittäjiin suhteen),
VIFi = 1
Mitä suurempi on kertoimen VIFi arvo, sitä voimakkaammin selittäjä i riippuu
lineaarisesti muista selittäjistä. Jos
VIFi > 10
jollekin selittäjälle i, multikollineaarisuudesta saattaa olla haittaa.
Vif-kertoimet saadaan paketin car() funktiolla vif()
vif(taysimalli)
CHEM1
CHEM2
38.49621 254.42317
CHEM3
CHEM4
46.86839 282.51286
Mallissa (1) sekä selittäjiä CHEM2 ja CHEM4 vastaavien varianssin inflaatiotekijöiden
arvot ovat suurempia kuin 200, mikä viittaa voimakkaaseen multikollineaarisuuteen.
Tarkastellaan selittäjien multikollineaarisuutta estimoimalla regressiomallit, joissa
selitettävinä muuttujina ovat muuttujat CHEM2 ja CHEM4 ja kummassakin tapauksessa
selittäjinä käytetään kaikkia muita alkuperäisen mallin (1) selittäjiä.
Olkoon mallina
(2)
CHEM2 = 0 + 1 CHEM1 + 3 CHEM3 + 4 CHEM4 + 
Estimointitulokset mallista (2):
mallic2=lm(CHEM2~CHEM1+CHEM3+CHEM4)
summary(mallic2)
Call:
lm(formula = CHEM2 ~ CHEM1 + CHEM3 + CHEM4)
Residuals:
Min
1Q
-2.2494 -0.7280
Median
0.3881
3Q
0.7033
Max
0.9512
Coefficients:
Estimate Std. Error t value
(Intercept) 96.59382
2.16253
44.67
CHEM1
-0.97860
0.10602
-9.23
CHEM3
-1.00350
0.09443 -10.63
CHEM4
-0.97759
0.02111 -46.30
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01
Pr(>|t|)
7.06e-12
6.94e-06
2.15e-06
5.12e-12
***
***
***
***
‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.126 on 9 degrees of freedom
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Multiple R-squared: 0.9961, Adjusted R-squared: 0.9948
F-statistic: 760.3 on 3 and 9 DF, p-value: 3.864e-11
Mallin selitysaste on 99.6 %, joten CHEM2 riippuu hyvin voimakkaasti muista
selittäjistä.
Huomaa, että muuttujan CHEM2 VIF-kerroin mallissa (1) on
VIF2 
1
1  R22
2
jossa R2 on selitysaste mallista (2).
Olkoon mallina
(3)
CHEM4 = 0 + 1 CHEM1 + 2 CHEM2 + 3 CHEM3 + 
Estimointitulokset mallista (3):
Call:
lm(formula = CHEM4 ~ CHEM1 + CHEM2 + CHEM3)
Residuals:
Min
1Q
-2.3264 -0.6836
Median
0.4439
3Q
0.7463
Max
1.0379
Coefficients:
Estimate Std. Error t value
(Intercept) 98.65079
1.94627 50.687
CHEM1
-1.00504
0.10175 -9.878
CHEM2
-1.01865
0.02200 -46.303
CHEM3
-1.02809
0.09187 -11.191
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01
Pr(>|t|)
2.27e-12
3.96e-06
5.12e-12
1.39e-06
***
***
***
***
‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.15 on 9 degrees of freedom
Multiple R-squared: 0.9965, Adjusted R-squared: 0.9953
F-statistic: 844.5 on 3 and 9 DF, p-value: 2.413e-11
Mallin selitysaste on 99.7 %, joten CHEM4 riippuu voimakkaasti muista selittäjistä.
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Huomaa, että muuttujan CHEM4 VIF-kerroin mallissa (1)
VIF4 
1
1  R42
2
jossa R4 on selitysaste mallista (3).
Perussyy multikollineaarisuudelle mallissa (1) on se, että sementti koostuu lähes
kokonaan ainesosista CHEM1, CHEM2, CHEM3, CHEM4: Muuttujien CHEM1,
CHEM2, CHEM3, CHEM4 summa vaihtelee välillä 95 – 99 %. Siten yhden ainesosan
lisäämisen on pakko vähentää joidenkin muiden ainesosien osuutta sementin koostumuksessa. Tämä on selittää sen, miksi muuttujapareilla CHEM1 ja CHEM3 sekä
CHEM2 ja CHEM4 on voimakkaat negatiiviset korrelaatiot.
(b)
Paras selittäjien yhdistelmä
Regressiomallin selittäjien valikointiin voidaan käyttää erilaisia strategioita.
Valittaessa parasta selittäjien yhdistelmää kaikkia mahdollisia mallivaihtoehtoja
verrataan toisiinsa käyttämällä jotakin mallinvalintakriteeriä ja lopulliseksi malliksi
valitaan se, joka on käytetyn kriteerifunktion mielessä optimaalinen.
Tilastotieteellisessä kirjallisuudessa on esitetty lukuisia mallinvalintakriteereitä.
Tunnettuja kriteereitä ovat esim. Akaiken informaatiokriteeri AIC, Schwarzin
bayeslainen informaatiokriteeri SBIC (BIC), Hannanin ja Quinnin kriteeri HQ,
Allenin PRESS ja CAT.
Mallin valinnan kriteerifunktio on muotoa
min
𝑀⊆{1,…,𝑞}
2
𝐶(|𝑀|, 𝜎̂|𝑀|
).
2
Missä M on selittäjäkandidaattien yhdistelmä, ja 𝜎̂|𝑀|
sitä vastaavan mallin
jäännösvarianssin suurimman uskottavuuden estimaattori, ja C näiden suhteen kasvava
funktio. Yleisesti kriteerifunktiolta toivotaan:
(1) Mahdollisimman suurta selitysastetta
(2) Mahdollisimman vähillä selittäjillä.
R:ssä paketin ”leaps” funktio ”regsubsets()” laskee kullekin selittäjämäärälle regression,
joka maksimoi selitysasteen (tai muun halutun suureen). Tällöin saadaan tietyllä tapaa
lista parhaista regressioista. Tehtävän tapauksessa koodi
install.packages(”leaps”)
library(leaps)
osaj=regsubsets(HEAT~CHEM1+CHEM2+CHEM3+CHEM4,data=hald)
summary(osaj)
tulostaa
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
Subset selection object
Call: regsubsets.formula(HEAT ~ CHEM1 + CHEM2 + CHEM3 + CHEM4, data = hald)
4 Variables (and intercept)
Forced in Forced out
CHEM1
FALSE
FALSE
CHEM2
FALSE
FALSE
CHEM3
FALSE
FALSE
CHEM4
FALSE
FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
CHEM1 CHEM2 CHEM3 CHEM4
1 ( 1 ) " "
" "
" "
"*"
2 ( 1 ) "*"
"*"
" "
" "
3 ( 1 ) "*"
"*"
" "
"*"
4 ( 1 ) "*"
"*"
"*"
"*"
Tästä nähdään, että CHEM4 on paras yksittäinen selittäjä muuttujalle HEAT, kun taas
pari (CHEM1,CHEM2) selittää paremmin kuin mikään muu kahden selittäjän
osajoukko. Jos halutaan tutkia mallinvalintakriteereitä, niin niitä voidaan visualisoida
helposti. Esimerkkinä Mallowsin Cp:
plot(osaj, scale=”Cp”)
Kuvaa tulkitaan seuraavasti: Pysty-akselilla on Mallowsin Cp-luku (pienempi on
parempi). Musta laatikko merkitsee, että malli sisältää vaaka-akselin muuttujan. Tällöin
MS-C2128 Ennustaminen ja aikasarja-analyysi
2. tietokoneharjoitukset
tulkitaan, että Cp-luvun mielessä paras malli on malli, joka sisältää selittäjät CHEM1 ja
CHEM2. Vastaava Cp-luku on 2.7.
Kokeile argumentille ”scale” arvoja: ”bic” ja ”adjr2”. Mallille voidaan laskea Akaiken
informaatiokriteeri kirjoittamalla
AIC(malli)
Huomautus:
Jäännösneliösummaa tai selitysastetta ei voida käyttää mallinvalintakriteereinä, koska
sekä jäännösneliösumman minimointi että selitysasteen maksimointi johtavat aina
täyteen (maksimaaliseen) malliin (esimerkin tapauksessa malliin, jossa on selittäjinä
kaikki kandidaatit CHEM1, CHEM2, CHEM3, CHEM4).
Tehtävä 2.3.
Jatkoa tehtävälle 2.2. Käytä mallin valinnassa alaspäin askellusta. Suorita alaspäin
askellus permutaatiotestin avulla. Käytä apunasi luentokalvoja sekä viime viikon
demotehtävää 1. Vertaa tuloksia tehtävän 2.2 (b)-kohtaan.
Tehtävä 2.4.
Lannoiteaineen määrä vaikuttaa vehnän satoon. Määrän vaikutusta tutkittiin vaihtelemalla
lannoiteaineen määrää (11 tasoa) 33:lla koealalla (sama määrä lannoitetta 3:lla koealalla) ja
rekisteröimällä saatu sato. Tiedot kokeesta on annettu tiedostossa VehnanSato.txt.
Muuttujina tiedostossa ovat
Sato
= Sadon määrä (yksikkönä kg/pinta-alayksikkö)
Lannoite = Lannoiteaineen määrä (yksikkönä kg/pinta-alayksikkö)
(a)
Estimoi lineaarinen regressiomalli, jossa selitettävänä on muuttuja Sato ja selittäjänä
muuttuja Lannoite. Tutki mallin hyvyyttä regressiografiikan avulla.
(b)
Estimoi lineaarinen regressiomalli, jossa kohdan (a) malliin on lisätty selittäjäksi
muuttuja
LSqrd = Lannoite×Lannoite
Tutki mallin hyvyyttä regressiografiikan avulla.
(c)
Kumpi malleista on parempi? Miksi?