(b) Laske ja tulosta muuttujien keskinäiset korrelaatiot ja piirrä sirontakuviomatriisi.

Samankaltaiset tiedostot
Regressioanalyysi. Kuusinen/Heliövaara 1

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Yhden selittäjän lineaarinen regressiomalli (jatkoa) Ensi viikolla ei pidetä luentoa eikä harjoituksia. Heliövaara 1

Johdatus regressioanalyysiin. Heliövaara 1

TA7, Ekonometrian johdantokurssi HARJOITUS 4 1 RATKAISUEHDOTUKSET

Harjoitus 9: Excel - Tilastollinen analyysi

ABHELSINKI UNIVERSITY OF TECHNOLOGY

805306A Johdatus monimuuttujamenetelmiin, 5 op

805305A JOHDATUS REGRESSIO- JA VARIANSSIANALYYSIIN, sl 2017

(d) Laske selittäjään paino liittyvälle regressiokertoimelle 95 %:n luottamusväli ja tulkitse tulos lyhyesti.

2. Teoriaharjoitukset

Mat Tilastollisen analyysin perusteet, kevät 2007

Logistinen regressio, separoivat hypertasot

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

1. Tutkitaan tavallista kahden selittäjän regressiomallia

Sovellettu todennäköisyyslaskenta B

Identifiointiprosessi

805306A Johdatus monimuuttujamenetelmiin, 5 op

2. Tietokoneharjoitukset

Vastepintamenetelmä. Kuusinen/Heliövaara 1

Harjoitus 7 : Aikasarja-analyysi (Palautus )

Sovellettu todennäköisyyslaskenta B

Harha mallin arvioinnissa

805306A Johdatus monimuuttujamenetelmiin, 5 op

Esimerkki 19. Esimerkissä 16 miniminormiratkaisu on (ˆx 1, ˆx 2 ) = (1, 0).

Testejä suhdeasteikollisille muuttujille

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

Tilastollisen analyysin perusteet Luento 9: Moniulotteinen lineaarinen. regressio

Harjoitus 6 -- Ratkaisut

1. Tutkitaan regressiomallia Y i = β 0 + β 1 X i + u i ja oletetaan, että tavanomaiset

Näistä standardoiduista arvoista laskettu keskiarvo on nolla ja varianssi 1, näin on standardoidulle muuttujalle aina.

(b) Vedonlyöntikertoimet syytetyn ihonvärin eri luokissa

, 3.7, 3.9. S ysteemianalyysin. Laboratorio Aalto-yliopiston teknillinen korkeakoulu

Tässä harjoituksessa käydään läpi R-ohjelman käyttöä esimerkkidatan avulla. eli matriisissa on 200 riviä (havainnot) ja 7 saraketta (mittaus-arvot)

Johdatus tilastotieteeseen Regressiomallin valinta. TKK (c) Ilkka Mellin (2004) 1

TAMPEREEN TEKNILLINEN YLIOPISTO KÄYTTÖOHJE TIETOVARASTON KUUTIOT

Näistä standardoiduista arvoista laskettu keskiarvo on nolla ja varianssi 1, näin on standardoidulle muuttujalle aina.

Ilkka Mellin Tilastolliset menetelmät. Osa 4: Lineaarinen regressioanalyysi. Regressiomallin valinta. TKK (c) Ilkka Mellin (2007) 1

MS-C2128 Ennustaminen ja aikasarja-analyysi 2. harjoitukset / Tehtävät Kotitehtävä: 3,4

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

Vastepintamenetelmä. Vilkkumaa / Kuusinen 1

Korrelaatiokerroin. Hanna Heikkinen. Matemaattisten tieteiden laitos. 23. toukokuuta 2012

Ilmoittaudu Weboodissa klo (sali L4) pidettävään 1. välikokeeseen!

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

Mat Tilastollisen analyysin perusteet, kevät 2007

Tilastollisen analyysin perusteet Luento 7: Lineaarinen regressio

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

Diskriminanttianalyysi I

Harjoitus 3: Regressiomallit (Matlab)

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

Lohkoasetelmat. Vilkkumaa / Kuusinen 1

Harjoitukset 4 : Paneelidata (Palautus )

Korrelaatiokertoinen määrittely 165

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Lohkoasetelmat. Heliövaara 1

1. Tilastollinen malli??

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

1 Rajoittamaton optimointi

1. Tietokoneharjoitukset

Yleistetyistä lineaarisista malleista

Johdatus tilastotieteeseen Yleinen lineaarinen malli. TKK (c) Ilkka Mellin (2004) 1

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

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Gripenberg. MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi Tentti ja välikoeuusinta

Harjoitukset 2 : Monimuuttujaregressio (Palautus )

Ilkka Mellin Tilastolliset menetelmät. Osa 4: Lineaarinen regressioanalyysi. Yleinen lineaarinen malli. TKK (c) Ilkka Mellin (2007) 1

Oletetaan, että virhetermit eivät korreloi toistensa eikä faktorin f kanssa. Toisin sanoen

Harjoitus 3: Regressiomallit (Matlab)

A250A0050 Ekonometrian perusteet Tentti

11. laskuharjoituskierros, vko 15, ratkaisut

2. Aineiston kuvailua

Yleinen lineaarinen malli

Reaalifunktioista 1 / 17. Reaalifunktioista

Puumenetelmät. Topi Sikanen. S ysteemianalyysin. Laboratorio Aalto-yliopiston teknillinen korkeakoulu

Erityiskysymyksiä yleisen lineaarisen mallin soveltamisessa

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

Mat Tilastollisen analyysin perusteet, kevät 2007

HY, MTO / Matemaattisten tieteiden kandiohjelma Tilastollinen päättely II, kevät 2018 Harjoitus 8B Ratkaisuehdotuksia.

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 =

Dynaamiset regressiomallit

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Kuva 7.2 vastaustaulu harjoitukseen 7.2

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Johdatus regressioanalyysiin

pisteet Frekvenssi frekvenssi Yhteensä

Load

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

1. PÄÄTTELY YHDEN SELITTÄJÄN LINEAARISESTA REGRESSIOMALLISTA

Tilastollinen päättely II, kevät 2017 Harjoitus 2A

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

MS-A0503 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

MS-A0503 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

GeoGebra tutkivan oppimisen välineenä: havainto-hypoteesi-testaus

Pienimmän neliösumman menetelmä (PNS)

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Tilastotieteen kertaus. Kuusinen/Heliövaara 1

Transkriptio:

Oulun yliopiston matemaattisten tieteiden tutkimusyksikkö/tilastotiede 805351A LINEAARINEN REGRESSIO, kl 2019 (EL) Harjoitus 7, pe 1.3. klo 10-12 MA336: mikroluokkatehtävät Analysoidaan aineistoa, prostate.txt, joka sisältää 97 eturauhasen syöpään sairastuneesta potilaasta havainnot 9 muuttujasta. Vastemuuttujana on lpsa eli seerumin PSA-pitoisuus (PSA = prostataspesifinen antigeeni, mittayksikkö µg/l) valmiiksi logaritmoituna. PSA-testiä käytetään paljon eturauhasen syövän diagnostiikassa, joskin sillä on taipumus tuottaa paljon ns. vääriä positiivisia. Selittävinä termeinä on joukko PSA-pitoisuuden ennustetekijöitä. lcavol = kasvaimen tilavuuden logaritmi, lweight = eturauhasen painon logaritmi, age = potilaan ikä (v), lbhp = eturauhasen hyvänlaatuisen liikakasvun määrän logaritmi, svi = siemenrakkulan invaasio, 1 = kyllä, 0 = ei, lcp = kapsulaarisen penetraatioasteen logaritmi, gleason = Gleasonin pistemäärä, vaihteluväli 2 10, pgg45 = Gleasonin 4/5-tyypin osuus (%) 1. Aineistoon tutustuminen (a) Lue aineisto sisään, listaa ja luo alustava silmäys. > library(car) > library(glmnet) > pro <- read.table("y:/yleiset/mikroluokat/matematiikka/linreg2019/prostate.txt", + header=t) > ## pro <- read.table("prostate.txt", header = TRUE) ## jos omassa työhakemistossa > str(pro) > n <- nrow(pro) ; p <- ncol(pro) - 1 # havaintojen ja selittäjien lkm:t (b) Laske ja tulosta muuttujien keskinäiset korrelaatiot ja piirrä sirontakuviomatriisi. > round( cor( pro), 2) > scatterplotmatrix( pro ) Tutki muuttujien suorien jakaumien muotoja ja niiden välisiä riippuvuuksia. Kuinka moni selittäjä korreloi vasteen kanssa positiivisesti? 2. Sovitetaan ensin täysi malli, joka sisältää kaikki 8 ennustetekijää. (a) Tulosta tämän mallin päätulokset: estimoidut kertoimet, keskivirheet jne. sekä VIF-luvut. > m8 <- lm( lpsa ~., data=pro) > summary(m8) > round( vif(m8), 2) Mitkä termit näyttäisivät olevan tärkeitä ja mitkä vähemmän tärkeitä? Mitä VIF-luvut kertovat? Mihin muuttujiin mahdollinen kollineaarisuus näyttäisi ensisijaisesti paikallistuvan? (b) Piirrä myös oletusarvoiset diagnostiset kuviot. > par(mfrow=c(2,2)) > plot(m8)

Mitä päätelmiä teet diagnostisten kuvioiden pohjalta havaintojen sopusoinnusta tavanomaisten mallioletusten kanssa? 3. Regressiokertoimien ja keskivirheiden pintapuolisen tarkastelun nojalla vaikuttaisi siltä, että joidenkin selittäjien rooli saattaa olla aika vaatimaton. Käydään läpi selittävien termien kaikki osajoukot ja katsotaan, millä kokoonpanoilla Akaiken ja Schwartzin informaatiokriteerit saavat pienimmän arvonsa. (a) Sovia ensin nollamalli, jossa on pelkkä vakiotermi 1. > m0 <- lm( lpsa ~ 1, data=pro ) (b) R-paketin leaps funktio regsubset() käy läpi kaikki 2 8 1 = 255 mahdollista selittävien termien osajoukkoa (poislukien nollamalli) ja laskee niistä eräitä tunnuslukuja. Hyödynnämme niistä ensisijaisesti kunkin yksittäisen mallin jäännösneliösummaa SSE ja termien lukumäärää p, joiden pohjalta kiinnostavat informaatiokriteerit ovat laskettavissa, kun havaintojen lkm n on sama. Kutsu ao. funktiota, jonka tulosten tiivistelmästä tulevat poimituksi tarvittavat tunnusluvut jokaiselle 255 eri mallille datakehikkoon all. > library(leaps) > all <- regsubsets( lpsa ~., data=pro, int=true, + nbest=100, nvmax=10, really.big=true) (c) Kaikkien 256 mallin (ml. nollamalli) informaatiokriteerien listauksen asemesta haluamme tulostaa lyhyemmän listan, jossa on vain 9 riviä. Jokainen rivi vastaa tiettyä aktiivisten termien (muut kuin vakiotermi) lukumäärää 0, 1,..., 8. Yksittäisellä rivillä tulostetaan AIC ja BIC kaikista saman termiluvun omaavista malleista vain siitä mallista eli termikokoonpanosta, jonka jäännösneliösumma SSE on pienin. Tätä tarkoitusta varten käytämme Y-levyn kurssikansiossa olevaa R-skriptiä minssesub.r, jossa määritellään samanniminen funktio. Sen ensimmäisenä argumenttina on funktion regsubsets() tuottama objekti, ja toisena nollamallin sovituksen tuloksena luotu lm-objekti. Kopioi skripti omaan työhakemistoosi, lataa se istuntoosi (source()), listaa, tarkista syntaksi ja kutsu sitä asianmukaisilla argumenteilla. > source("minssesub.r") > minssesub > minssesub(all, m0) Tarkastele tuloksia. Mikä malli olisi optimaalinen AIC:n perusteella? Entä minkä mallin BIC valitsisi? 4. Siirrytään seuraavaksi soveltamaan harjanneregressiota, jossa pidetään kaikki termit mallissa mutta kutistetaan regressiokertoimia rajoittamalla niiden l 2 -normin suuruutta eli kerroinvektorin β kokonaispituutta lisäämällä minimoitavaan neliösummaan i (Y i x i β) 2 sakkotermi λ j β2 j. Jotta l 2 -normi kohtelisi eri termejä ja kertoimia tasapuolisesti, on syytä standardoida mallimatriisi eli keskistää kaikki muuttujat keskiarvoonsa ja skaalata ne keskihajonnalla. Tämä onnistuu funktiolla scale(), joka oletusarvoisesti tekee molemmat operaatiot samalla kertaa. (a) Toteuta standardointi paitsi mallimatriisille niin myös vastemuuttujalle. > Xc <- scale( pro[, 1:8] ) ; colnames(xc) <- names(pro[, -9]) > Yc <- scale( pro[, 9]) (b) Sovita jälleen täysi malli mutta nyt standardoidulle aineistolle ja ilman vakiotermiä. Ota talteen tämän mallin kertoimet, jotka määräävät ratkaisupolkujen alkupisteet. > mfc <- lm( Yc ~ Xc - 1 ) > b0 <- coef(mfc) ; round(b0, 3)

Annetulla säätöparametrin λ > 0 arvolla harjanne-estimaattorin lauseke voidaan ilmaista seuraavasti β λ = (X T X + λi) 1 X T Y Laske arvolla λ = 50 harjanne-estimaattien arvot sekä vapausasteluku df λ = j d2 j /(d2 j + λ), jossa d 1, d 2,... ovat standardoidun mallimatriisin singulaariarvoja. Nämä saadaan singulaariarvohajotelman (singular value decomposition) tuottavalla R-funktiolla svd() Tulosta rinnalle sakottamattoman pns-estimaatin koordinaatit. > lam <- 50 > b50 <- solve( t(xc) %*% Xc + lam*diag( rep(1, p) ) ) %*% t(xc) %*% Yc > dflam <- sum( svd(xc)$d^2 / (svd(xc)$d^2 + lam) ) > round( cbind( b50, b0), 2) > round(dflam,2) Mitä havaintoja teet sakotetuista kertoimista ja sakotuksen jälkeisestä vapausasteluvusta verrattuna sakottamattoman sovituksen tuloksiin? 5. R:ssä on montakin pakettia, jotka sisältävät työkaluja harjanneregressiota varten. Paketti glmnet on erityisen käyttökelpoinen, koska sillä voidaan toteuttaa myös LASSO-estimointi. (a) Määrittele λ:lle aluksi leveähkö hila [0, 2000] yhden yksikön välein. Sovita malli sakottamalla neliösummaa kaikilla näillä 2001 λ:lla erikseen ja talleta kaikkien sovitusten estimoidut regressiokertoimet matriisiin b.lam. Funktion glmnet() pääargumentteina ovat mallimatriisi ja vastevektori. Harjanne-estimoinnissa argumentin alpha arvo on 0. Lisäksi annetaan λ:n arvojen hila. Huom! Hila pitää skaalata havaintoyksiköiden lukumäärällä n, koska glmnet() minimoi sakotetusti n:llä jaettua neliösummaa eli lauseketta Y Xβ 2 /n. > lam <- seq(2000,0, by = -1) > m.rid = glmnet( Xc, Yc, alpha=0, lambda = lam/n) > b.lam = as.matrix( coef(m.rid)[-1, ] ) # kertoimet talteen (b) Laske ja tallenna kutakin λ:n arvoa vastaava vapausasteluku df λ sekä estimaattorin β λ standardoidun l 2 - normin β λ 2 / β OLS 2 arvo. Piirrä ratkaisupolut eli β λ :n koordinaattien arvot (i) λ:n funktioina, (ii) vastaavan vapausasteluvun df λ mukaan sekä (iii) standardoidun l 2 - normin mukaan. Näihin tehtäviin on käytettävissä funktio pathplot(), joka löytyy kurssin kansiosta Y-levyltä. Kopioi funktion skripti omaan työhakemistoosi, lataa se istuntoosi, listaa, tutki sen syntaksia ja kutsu asianmukaisilla argumenteilla. > source("pathplot.r") > pathplot > par(mfrow=c(1,3)) > par(mar=c(4.5, 4.5, 2, 1)+0.1) > pathplot(m.rid, Xc, Yc, plot="lambda", xlim=c(0,500) ) > pathplot(m.rid, Xc, Yc, plot="df" ) > pathplot(m.rid, Xc, Yc, plot="normi") Mitä havaintoja teet ratkaisupoluista? Kuinka voimakasta kutistuminen on? Muuttuvatko joidenkin kertoimien etumerkit kutistettaessa? Vertaa erityisesti kahta jälkimmäistä kuviota. Antavatko käytännössä saman informaation?

6. Optimaalisen λ:n valinnassa yksi suosittu tapa perustuu K-kertaiseen ristiinvalidointiin. Haetaan sellainen λ:n arvo λ, jolla ristiinvalidointikriteerin eli eri testiaineistoissa laskettujen ennustekeskineliösumman CV λ keskiarvo CV λ on pienin, sekä se λ:n arvo λ 1SE, jolla CV λ + CV λ SE λ, jossa K (CV k,λ CV λ ) 2 k=1 SE λ =. K(K 1) Ristiinvalidointi voidaan toteuttaa funktiolla cv.glmnet(), joka toteuttaa aineiston satunnaisen jakamisen K ositteeseen ja tekee jokaisella annetulla λ tarvittavat laskelmat kustakin ositteesta erikseen laskien ositekohtaisista tuloksista CV-tunnusluvun keskiarvon ja keskivirheen. Funktion tuloksena tuotetusta oliosta voidaan poimia mm. λ ja λ 1SE eli lambda.min ja lambda.1se. (a) Toteuta edellä sovitetun harjanneregression 5-kertainen ristiinvalidointi ja tulosta λ sekä λ 1SE. > set.seed(4356) # satunnaisotantaa varten; määrää oma siemenlukusi > lamm <- seq(100, 0, by = -0.1) > cv.rid <- cv.glmnet( Xc, Yc, nfolds = 5, lambda = lamm/n, alpha=0) > ( lam.ratk <- n*c( cv.rid$lambda.min, cv.rid$lambda.1se ) ) Mikä λ:n arvo tuotti pienimmän CV-keskiarvon? Mikä on optimaalinen λ, jos noudatetaan yhden keskivirheen sääntöä? (b) Kurssin hakemistossa Y-levyllä skripti cvplot.r sisältää funktion cvplot(), jonka avulla voit piirtää CV-keskiarvojen CV λ sekä keskiarvoista yhden keskivirheen poikkeamien käyrät λ:n funktiona. Kopioi skripti työhakemistoosi, listaa ja tutustu sen syntaksiin. Piirrä CV-keskiarvojen ja keskivirheiden käyrät tällä funktiolla. Piirrä myös rinnalle uudelleen harjanne-estimaattien polut λ:n funktiona merkitsemällä kuvioon pystyviivoin λ:n ja λ 1SE :n sijaintikohdat. > source("cvplot.r") > cvplot > cvplot(cv.rid) > pathplot(m.rid, Xc, Yc, type="lambda", xlim=c(0,100)) > abline( v= n*c(cv.rid$lambda.min, cv.rid$lambda.1se), lty=3) Mitä havaintoja teet? Kuinka voimakkaasti minimi-λ:lla sakottaminen kutistaa estimaatteja? Entä kuinka paljon enemmän λ 1SE niitä kutistaa? 7. LASSO-estimointi kutistaa regressiokertoimia rajoittamalla niiden l 1 -normin suuruutta. Sakkotermi on tässä muotoa λ j β j. Mitä suuremmaksi λ asetetaan, sitä useampi regressiokerroin pakotetaan estimoitumaan 0:ksi. Funktiota glmnet() sovelletaan LASSO:ssa paljolti samaan tapaan kuin harjanneregressiossa. Olennaisena erona on normin l 2 korvaaminen normilla l 1, jolloin funktion glmnet() kutsussa asetetaan alpha = 1. (a) Toteuta LASSO-estimointi alla annetulla λ:n arvojen hilalla. Piirrä ratkaisupolut sekä λ:n että standardoidun normin j β j,λ / j β OLS j funktiona. Huom. LASSO:ssa mallin vapausasteluku kullakin λ on hieman hankalammin laskettavissa kuin harjanneregressiossa, mutta se on likimain sama kuin jäljellä olevien nollasta poikkeavien kerroinestimaattien lukumäärä. > las <- seq(200, 0, -0.1) > m.las <- glmnet( Xc, Yc, alpha = 1, lambda = las/n ) # lambda:n skaalaus! > pathplot(m.las, Xc, Yc, plot="lambda", xlim=c(0, 80) ) > pathplot(m.las, Xc, Yc, plot="normi")

Tarkastele ratkaisupolkuja. Mitä havaintoja teet? Mitkä termit putoavat miltei heti kättelyssä eli pienillä λ:n arvoilla ja mitkä kestävät mukana verrattain suurillakin säädöillä? (b) Toteuta LASSO-sovituksen 5-kertainen ristiinvalidointi funktiolla cv.glmnet(). Piirrä CV-kriteerin keskiarvojen ± keskivirheiden käyrät samaan tapaan kuin edelläkin. Piirrä rinnalle uudelleen regressiokertoimien estimaattien ratkaisupolut ja merkitse samaan kuvioon sekä estimoitu minimi-cv:n λ eli λ sekä + yhden keskivirheen λ eli λ 1SE. > set.seed(5643) > cv.las <- cv.glmnet( Xc, Yc, nfolds = 5, lambda = las/n, alpha=1) > ( las.ratk <- n*c( cv.las$lambda.min, cv.las$lambda.1se ) ) > cvplot( cv.las, xlim=c( 0, 20), ylim=c(0.30, 0.60) ) > pathplot( m.las, Xc, Yc, plot="lambda", xlim=c(0,20) ) > abline( v=las.ratk, lty=2) Mitkä termit ja kuinka monta valittaisiin malliin, jos sovelletaan pienimmän CV-keskiarvon kriteeriä? Entä jos sovelletaan yhden keskivirheen sääntöä?