2. Tietokoneharjoitukset Demotehtävät 2.1 Jatkoa kotitehtävälle. a) Piirrä aineistosta pistediagrammi (KULUTUS, SAIRAST) ja siihen estimoitu regressiosuora. KULUTUS on selitettävä muuttuja. b) Määrää estimoidusta mallista sovitteet ŷ ja residuaalit e ja tallenna ne muuttujiksi FIT (=sovite) ja RES (=residuaali). c) Piirrä pistediagrammit (SAIRAST, FIT) ja (FIT, RES). d) Tutki havainnon 7=USA:n poikkeavuutta kohdassa (c) piirretyssä kuviossa. e) Tutki havainnon 7=USA poikkeavuutta Cookien etäisyyksien avulla. Voisiko USA olla poikkeava havainto? f) Estimoi malli ilman havaintoa USA ja vertaa tuloksia kotitehtävään. Ratkaisu. tupakka <- read.table("tupakka.txt",header=t,sep="\t") malli <- lm(sairast~kulutus,data=tupakka) maat <- c("islanti","norja","ruotsi","kanada","tanska", "Itävalta","USA","Hollanti","Sveitsi","Suomi","Englanti") a) Pistediagrammi (Kuva 1): plot(tupakka$kulutus,tupakka$sairast, ylab="sairastuneet vuonna 1950", xlab="kulutus vuonna 1930", pch=16, main="kulutus/sairastuneet per 100 000 henkilöä") abline(malli,col="red") text(tupakka$kulutus, tupakka$sairast, labels=maat, cex= 0.8,pos=3) Havaintojen merkitsemiseen voidaan vaihtoehtoisesti käyttää identify komentoa (komento käydään läpi harjoituksissa). 1 / 13
Kulutus/Sairastuneet per 100 000 henkilöä Englanti Sairastuneet vuonna 1950 100 200 300 400 Ruotsi Norja Hollanti Sveitsi Tanska Itävalta Kanada Suomi USA Islanti 200 400 600 800 1000 1200 Kulutus vuonna 1930 Kuva 1: Pistediagrammi muuttujista KULUTUS ja SAIRAST. b) Sovitteet ja residuaalit löytyvät mallista nimillä fitted.values ja residuals, näihin voidaan viitata seuraavasti: FIT <- malli$fit RES <- malli$res c) Pistediagrammi (Selitettävä, Sovite) (Kuva 2). Piirretään sovitteet ŷ i selitettävän muuttujan SAIRAST arvoja vastaan. plot(tupakka$sairast,fit, ylab="sovitteet",xlab="sairastuneet",pch=16) text(tupakka$sairast,fit, labels = ifelse(rownames(tupakka)=="7", maat, NA),pos=2) 2 / 13
Sovitteet 150 200 250 300 350 USA 100 200 300 400 Sairastuneet Kuva 2: Pistediagrammi mallin selitettävästä muuttujasta ja sovitteesta. Diagrammi kuvaa mallin hyvyyttä: Malli on sitä parempi, mitä lähempänä pisteet (y i, ŷ i ), i = 1, 2,..., n ovat suoraa, jonka kulmakerroin on 1. Myös poikkeavat havainnot erottautuvat usein selvästi. Huomaa, että pisteistä (y i, ŷ i ), i = 1, 2,..., n määrätty Pearsonin korrelaatiokertoimen neliö on sama kuin selitysaste: [Cor(y, ŷ)] 2 = R 2. Pistediagrammi (Sovite, Residuaali)(kuva 3). Piirretään residuaalit e i sovitteita ŷ i vastaan. plot(fit,res, xlab="sovitteet",ylab="residuaalit",pch=16) text(fit,res, labels = ifelse(rownames(tupakka)=="7", maat, NA),pos=3) 3 / 13
Residuaalit 150 100 50 0 50 100 USA 150 200 250 300 350 Sovitteet Kuva 3: Pistediagrammi mallin sovitteista ja residuaalesta. Diagrammi kuvaa mallin hyvyyttä: Malli on sitä parempi, mitä lähempänä pisteet (ŷ i, e i ), i = 1, 2,..., n ovat suoraa e = 0. Myös poikkeavat havainnot erottautuvat usein selvästi. d) Havainnon 7=USA poikkeavuus näkyy varisinkin pistediagrammissa (FIT,RES). e) Talletetaan Cookin etäisyydet muuttujaan cooksd ja piirretään kuvaaja. Katso Kuva 4. cooksd <- cooks.distance(malli) x <-plot(cooksd,xaxt="n",xlab=" ",ylab="cookin etäisyys") axis(side=1,at=1:11, labels=maat,las=2 ) 4 / 13
Cookin etäisyys 0.0 0.5 1.0 1.5 2.0 Islanti Norja Ruotsi Kanada Tanska Itävalta USA Hollanti Sveitsi Suomi Englanti Kuva 4: Cookin etäisyydet mallille. f) Estimoidaan malli ilman havaintoa 7=USA. tupakka2 <- tupakka[-7,] malli2 <- lm(sairast~kulutus,data=tupakka2) summary(malli2) Residuals: Min 1Q Median 3Q Max -62.353-28.923-7.861 35.321 66.919 Coefficients: 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 5 / 13
Kulmakertoimen estimaatti on kasvattanut arvosta 0.23 arvoon 0.36. Tämä viittaa voimakkaampaan lineaariseen riippuvuuteen keuhkosyöpään sairastuneiden ja tupakan kulutuksen välillä, jäljellä olevien maiden joukossa. Kysymys: Saako havainnon 7=USA poistaa? Vastaus: USA:n pienempi keuhkosyöpätapausten suhteellinen lukumäärä saattoi johtua siitä, että siellä savukkeet olivat erilaisia (tupakan laatu oli miedompaa ja savukkeissa oli ltteri) verrattuna tutkimuksen muihin maihin. Jos näin oli, havaintoa USA voidaan pitää poikkeavana havaintona ja poisjättäminen on luvallista. Muista, että havaintoja ei voida sivuuttaa ilman päteviä perusteluja! 2.2 Sementin kovettuessa kehittyy lämpöä, jonka määrä riippuu sementin koostumuksesta. Tiedostossa hald.txt on seuraavat tiedot 13 erilaisesta sementtierästä: HEAT CHEM1, CHEM2, CHEM3, CHEM4 =lämpömäärä cal/g =sementin ainesosia (% kuiva-aineesta) a) Estimoi regressiomalli, jossa ovat mukana kaikki selittäjät. Vertaile kertoimien tilastollista merkitsevyyttä ja tarkastele vastaavien selittäjien varianssin inaatiotekijöitä. b) Etsi paras selittäjien yhdistelmä käyttämällä Akaiken informatiokriteeriä (AIC). Ratkaisu. Tavoitteena tehtävässä on selvittää, mitkä selittävistä tekijöistä CHEM1, CHEM2, CHEM3, CHEM4 vaikuttavat selittävän muuttujan HEAT käyttäytymiseen. Ladataan aluksi data ja asennetaan paketti car myöhempää käyttöä varten. install.packages("car") library(car) hald=read.table("hald.txt",header=t) 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ä korrelaatiota. 6 / 13
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 positiivista muuttujien CHEM1 ja CHEM2 kanssa ja negatiivinen muuttujien CHEM3 ja CHEM4 kanssa. Selittäjien CHEM1 ja CHEM3 välillä on voimakas negatiivinen korrelaatio, kuten myös selittäjien CHEM2 ja CHEM4 välillä. Estimoidan seuraavaksi täysi malli HEAT = β 0 + β 1 CHEM1 + β 2 CHEM2 + β 3 CHEM3 + β 4 CHEM4 + ɛ (1) taysimalli=lm(heat~chem1+chem2+chem3+chem4,data=hald) summary(taysimalli) Residuals: Min 1Q Median 3Q Max -3.1750-1.6709 0.2508 1.3783 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 H 0 : β 1 = β 2 = β 3 = β 4 = 0 on 111.5 ja sitä vastaava p-arvo on lähellä nollaa, joten malli on kokonaisuudessaan tilastollisesti merkitsevä ja ainakin yksi regressiokertoimista β 0, β 1, β 2, β 3 poikkeaa 7 / 13
nollasta. Kuitenkaan yksikään mallin (1) selittäjistä ei ole tilastollisesti merkitsevä, jos merkitsevyyden rajana pidetään 5%:n merkitsevyystasoa. Tämä johtuu selittäjien multikollineaarisuudesta. Selittäjien multikollineaarisuutta voidaan mitata VIF-kertoimilla. VIF-kerroin on 1 selittävälle muuttujalle, jonka otoskorrelaatio on 0 muiden selittävien muuttujien kanssa. Selittäjän VIF-arvo on sitä suurempi mitä vahvemmin kyseinen muuttuja riippuu lineaarisesti muista selittäjistä. Jos VIF > 10, multikollineaarisuudesta saattaa olla haittaa. VIF-kertoimet saadaan paketin car funktiolla vif vif(taysimalli) CHEM1 CHEM2 CHEM3 CHEM4 38.49621 254.42317 46.86839 282.51286 Mallissa (1) selittäjien CHEM2 ja CHEM4 vastaavien varianssin inaatiotekijöiden arvot ovat suurempia kuin 200, mikä viittaa voimakkaaseen multikollineaarisuusteen. Tarkastellaan selittäjien multikollineaarisuuttea 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ä. Tarkastellaan mallia CHEM2 = α 0 + α 1 CHEM1 + α 3 CHEM3 + α 4 CHEM4 + δ. (2) Estimointitulokset mallista (2): malli2 <- lm(chem2 ~ CHEM1+CHEM3+CHEM4,data=hald) summary(malli2) Residuals: Min 1Q Median 3Q Max -2.2494-0.7280 0.3881 0.7033 0.9512 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 96.59382 2.16253 44.67 7.06e-12 *** CHEM1-0.97860 0.10602-9.23 6.94e-06 *** 8 / 13
CHEM3-1.00350 0.09443-10.63 2.15e-06 *** CHEM4-0.97759 0.02111-46.30 5.12e-12 *** --- Signif. codes: 0?***? 0.001?**? 0.01?*? 0.05?.? 0.1?? 1 Residual standard error: 1.126 on 9 degrees of freedom 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 VIF 2 = 1, 1 R2 2 missä R 2 2 on selitysaste mallissa (2). Tarkastellaan mallia CHEM4 = α 0 + α 1 CHEM1 + α 2 CHEM2 + α 3 CHEM3 + δ. (3) Estimointitulokset mallissa (3): Call: lm(formula = CHEM4 ~ CHEM1 + CHEM2 + CHEM3) Residuals: Min 1Q Median 3Q Max -2.3264-0.6836 0.4439 0.7463 1.0379 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 98.65079 1.94627 50.687 2.27e-12 *** CHEM1-1.00504 0.10175-9.878 3.96e-06 *** CHEM2-1.01865 0.02200-46.303 5.12e-12 *** CHEM3-1.02809 0.09187-11.191 1.39e-06 *** --- Signif. codes: 0?***? 0.001?**? 0.01?*? 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ä. 9 / 13
Huomaa, että muuttujan CHEM4 VIF-kerroin mallissa (1) VIF 4 = 1, 1 R3 2 missä R3 2 on selitysaste mallista (3). Multikollineaarisuus mallissa (1) selittyy sillä että sementti koostuu lähes kokonaan ainesosista CHEM1, CHEM2, CHEM3 ja CHEM4. Muuttujien summa vaihtelee välillä 95-99%. Siten yhden ainesostan lisäämisen on pakko vähentää joidenkin muiden ainesosien osuutta sementin koostumuksessa. Tämä selittää sen, miksi muuttujapareilla CHEM1 ja CHEM3 sekä CHEM2 ja CHEM4 on voimakkaat negatiiviset korrelaatiot. b) Paras selittäjien yhdistelmä Regressiomallin selittäjien valikoimiseen 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ä paras. Tilastotieteen kirjallisuudessa on esitetty lukuisia mallinvalintakriteereitä. Tunnettuja kriteereitä ovat esim. Akaiken informaatiokriteeri (AIC), Schwarzin bayeslainen informaatiokriteeri (SBIC) ja Hannanin ja Quinnin kriteeri (HQ). Mallin valinnan kriteerifunktio on muotoa min M (1,...,q) C( M, ˆσ2 M ) Missä M on selittäjäkandidaattien yhdistelmä, ja ˆσ 2 M sitä vastaavan mallin jäännösvarianssin suurimman uskottavuuden estimaattori, ja C näiden suhteen kasvava funktio. Yleisesti kriteerifunktiolta toivotaan Mahdollisimman suurta selitysastetta Mahdollisimman vähillä selittäjillä. R:ssä funktio step() valitsee sellaisen muuttujien kombinaation joka minimoi AIC arvon. Huomaa että funktio step() laskee AIC arvon perustuen oletukseen virhetermien normaalisuudesta. step(taysimalli) Start: AIC=26.94 HEAT ~ CHEM1 + CHEM2 + CHEM3 + CHEM4 Df Sum of Sq RSS AIC - CHEM3 1 0.1091 47.973 24.974 10 / 13
- CHEM4 1 0.2470 48.111 25.011 - CHEM2 1 2.9725 50.836 25.728 <none> 47.864 26.944 - CHEM1 1 25.9509 73.815 30.576 Step: AIC=24.97 HEAT ~ CHEM1 + CHEM2 + CHEM4 Df Sum of Sq RSS AIC <none> 47.97 24.974 - CHEM4 1 9.93 57.90 25.420 - CHEM2 1 26.79 74.76 28.742 - CHEM1 1 820.91 868.88 60.629 Call: lm(formula = HEAT ~ CHEM1 + CHEM2 + CHEM4, data = hald) Coefficients: (Intercept) CHEM1 CHEM2 CHEM4 71.6483 1.4519 0.4161-0.2365 Tulostetta luetaan seuraavasti. Alussa AIC on koko mallille 26.944. Jos mallista poistetaan muuttuja CHEM3, saa AIC arvon 24.974, jos CHEM4 poistetaan saa AIC arvon 25.011, jos CHEM2 poistetaan saa AIC arvon 25.728 ja jos CHEM1 poistetaan AIC saa arvon 30.576. Haluamme minimoida mallinvalintakriteeriä, eli jätetään muuttuja CHEM3 pois mallista. Tarkastellaan mallia HEAT = β 0 + β 1 CHEM1 + β 2 CHEM2 + β 4 CHEM4. (4) Nyt Mallin 4 AIC on 24.974. R-tulosteesta huomataan, että AIC arvo kasvaa jos mikään jäljellä olevista muuttujista (CHEM1, CHEM2, CHEM4) jätetään pois. Estimoidaan Malli 4. malli4 <- lm(heat ~ CHEM1 summary(malli4) + CHEM2 + CHEM4, data=hald) Residuals: Min 1Q Median 3Q Max -3.0919-1.8016 0.2562 1.2818 3.8982 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 71.6483 14.1424 5.066 0.000675 *** 11 / 13
CHEM1 1.4519 0.1170 12.410 5.78e-07 *** CHEM2 0.4161 0.1856 2.242 0.051687. CHEM4-0.2365 0.1733-1.365 0.205395 --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 2.309 on 9 degrees of freedom Multiple R-squared: 0.9823,Adjusted R-squared: 0.9764 F-statistic: 166.8 on 3 and 9 DF, p-value: 3.323e-08 Huomaa että ylläolevassa mallissa muuttujat CHEM2 ja CHEM4 eivät ole tilastollisesti merkitseviä 5% merkitsevyystasolla. Kuvassa 5 on täyden mallin residuaalit. Histogrammin muoto viittaa siihen että virhetermin normaalisuusoletus ei päde, minkä seurauksena AIC ei ole luotettava kriteeri parhaiden selittäjien etsimisessä. Kotitehtävässä 2.3 mallin valinta suoritetaan permutaatiotestin avulla. Permutaatiotesti ei vaadi virhetermin normaalisuusoletusta ja täten takaa luotettavamman lopputuloksen. Alkuperäisen mallin estimoidut residuaalit Frequency 0 1 2 3 4 4 2 0 2 4 Kuva 5: Mallin 4 estimoidut residuaalit. Huomautus: Jäännösneliösummaa tai selitysastetta ei voida käyttää mallinvalintakriteerinä, koska sekä jäännösneliösumman minimointi että selitysasteen maksimointi johtavat aina täyteen (maksimaaliseen) malliin (tässä esimerkissä malliin jossa on selittäjinä kaikki kandidaatit CHEM1,CHEM2,CHEM3 ja CHEM4). 12 / 13
Kotitehtävät 2.3 Jatkoa tehtävälle 2.2. Käytä mallin valinassa alaspäin askellusta. Suorita alaspäin askellus permutaatiotestin avulla. Käytä apunasi luentokalvoja sekä viime viikon demotehtäviä. Vertaa tuloksia tehtävän 2.2 (b)-kohtaan. Alaspäin askelluksessa estimoidaan ensin malli käyttäen kaikkia selittäjiä ja tarkastellaan regressiokertoimien merkitsevyyttä. Mallista poistetaan vähiten merkitsevä selittäjä ja estimoidaan uusi malli ilman kyseistä muuttujaa. Muuttujia poistetaan kunnes mallissa on jäljellä vain tilastollisesti merkitseviä muuttujia. 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 Vehnan- Sato.txt. Muuttujina tiedostossa ovat Sato Lannoite = Sadon määrä (yksikkönä kg/pinta-alayksikkö) = 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ä regressiograikan avulla. b) Estimoi lineaarinen regressiomalli, jossa kohdan a) malliin on lisätty selittäjäksi muuttuja LSqrd = Lannoite Lannoite, eli muuttujan lannoite jokainen alkio korotettuna toiseen. Tutki mallin hyvyyttä regressiograikan avulla. c) Kumpi malleista on parempi? Miksi? 13 / 13