# --------------------------------------------------------------------------- # Oulun yliopiston matemaattisten tieteiden laitos/tilastotiede # 806112P DATA-ANALYYSIN PERUSMENETELMÄT, sl 2004 (Esa Läärä) # M-harjoitus 4. (29.10.-1.11.) RATKAISUT # ======================================= options(show.signif.stars=F) # Tehtävä 1. # ---------- # (a) Minitab Tree Data -aineiston lukeminen datakehikoksi puut <- read.table("http://cc.oulu.fi/~tilel/dapm2004/puut.dat", header=T) puut # (b) Muuttujien logaritmointi log.til <- log(puut$tilav.m3) log.halk <- log(puut$halk.m) log.kork <- log(puut$kork.m) lpuut <- data.frame( log.til, log.halk, log.kork) attach(lpuut) lpuut # (c) Logaritmoitujen muuttujien tunnusluvut summary(lpuut) sd(lpuut) # (d) Paketin 'Rcmdr' lataaminen library(Rcmdr) # Tehtävä 2. Korrelaatiot ja osittaiskorrelaatiot # ---------- # (a) Marginaalisten korrelatiokertoimien matriisi round(cor(lpuut), 3) # (b) sirontakuviomatriisi scatterplot.matrix(lpuut, diagonal='none', smooth=F) # (c)-(d) osittaiskorrelaatiokertoimien matriisi round(partial.cor(lpuut),3) # Tehtävä 3. Marginaalimallien sovittaminen ja niillä ennustaminen # ---------- # (a) Malli 1, jossa selittäjänä on vain log.kork m1 <- lm(log.til ~ log.kork) summary(m1) confint(m1) anova(m1) # (b) Tilavuuden ennustaminen 21 m ja 25 m korkuisilla puilla uudet1 <- data.frame( log.kork= c( log(21), log(25) ) ) lenn1 <- predict.lm(m1, newdata = uudet1, interval='predict') lenn1 exp(lenn1) # antilogaritmi: muunnos alkuperäiselle asteikolle # (c) Malli 2, jossa selittäjänä on vain log.halk m2 <- lm(log.til ~ log.halk) summary(m2) confint(m2) anova(m2) # (d) Tilavuuden ennustaminen halkaisijaltaan 0.297 m ja 0.445 m # olevilla puilla uudet2 <- data.frame( log.halk= c( log(0.297), log(0.445) ) ) lenn2 <- predict.lm(m2, newdata = uudet2, interval='predict') lenn2 exp(lenn2) # Tehtävä 4. Malli, jossa molemmat selittävät termit # ---------- # (a) Mallin sovittaminen ja tulostus m3 <- lm(log.til ~ log.halk + log.kork ) summary(m3) confint(m3) anova(m3) # (b) Ennustaminen uudet3 <- data.frame(uudet2, uudet1) lenn3 <- predict.lm(m3, newdata=uudet3, interval='predict') lenn3 exp(lenn3) # (c) Vertailu aineistossa oleviin samanlaisiin puihin puut[c(14, 27), ] # 5. ANOVA-taulu ja VIF # (a) Sovitetaan termit eri järjestyksessä ja verrataan # neliösummien muodostumista m4 <- lm(log.til ~ log.kork + log.halk ) anova(m4) # (c) VIF-kertoimet vif(m3)