############TEHT1####################

#a)

puut = read.table("http://users.jyu.fi/~junyblom/puut.dat", header=T)
attach(puut)
log.vol=log(vol); log.dbh=log(dbh);
log.d5=log(d5); log.ht=log(ht)

puut.lm = lm(log.vol ~ log.dbh + log.d5 + log.ht )
summary(puut.lm)

#b)

uusi = data.frame(rbind(c(log(30),log(25),log(30)),c(log(50),log(45),log(32))))
colnames(uusi) = c("log.dbh","log.d5","log.ht")
puut.pred = predict.lm(puut.lm,newdata=uusi,interval="prediction", level=0.9)

for (i in 1:dim(puut.pred)[1]){
  puut.pred[i,]=exp(puut.pred[i,])
}

round(puut.pred,2)


###########################
## Teht2
alko <- read.table("http://users.jyu.fi/~junyblom/alko.dat",
header=T)
logalko<-cbind(log(alko)[,2:4],rep(c(0,1),c(19,53-19)),1:53)
colnames(logalko)<-c("loghinta","logkulutus","logtulot","d69","aika")

malli2<-lm(logkulutus~loghinta+logtulot+aika+d69,data=logalko)
summary(malli2)
# Tulojen kasvu, ja keskioluen myyntiintulo lisäsivät kulutusta, hinnan nousu
# vaikuttaa negatiivisesti



# Luottamusvälit 
fit <- fitted(malli2)
res <- resid(malli2)
sigma2.hat <- sum(res^2)/malli2$df.residual
sigma.hat <- sqrt(sigma2.hat)
X <- as.matrix(malli2$model)
X[,1] <- 1
colnames(X)[1] <- "(Intercept)"
XX <- t(X)%*%X
XXinv <- solve(XX)
coef.se <- sigma.hat*sqrt(diag(XXinv))
coef.se
b <- coef(malli2)
tval <- qt(.975, df=malli2$df.residual)
conf.int <- rbind(b - tval*coef.se, b + tval*coef.se)
rownames(conf.int) <- c("2.5%", "97.5%")
conf.int
###############################################

teht3

alko<-read.table("http://users.jyu.fi/~junyblom/alko.dat",
header=TRUE)

attach(alko)

aika<-seq(c(1:53))
d69<-c(rep(0,times=19),rep(1,times=34))
x1<-log(hinta)-log(tulot)
malli<-lm(log(kulutus)~log(hinta)+log(tulot)+aika+d69)
malli0<-lm(log(kulutus)~x1+aika+d69)
anova(malli0,malli,test="F")
#nollahypoteesia beeta2=-beeta1 ei  hylätä

#Toisin sama

a <- c(0,1,1,0,0)

XXinv <- summary(malli)$cov
sigma.hat <- summary(malli)$sigma
b <- coef(malli)
t <- (a%*%b)/(sigma.hat*sqrt(a%*%XXinv%*%a))
2*(1-pt(abs(t), df=malli$df))

###################################

# Tehtävä 4

library(alr3)
data(sleep1)
attach(sleep1)

# a)

D <- factor(D)

malli <- lm(TS ~ D)
summary(malli)

# F-testi hylkää nollahypoteesin ryhmien od. arvojen yhtäsuuruudesta
# (summary-tulosteen viimeiseltä riviltä katsottu)
# Suoritetaan monivertailut

pairwise.t.test(TS, D, p.adjust.method="bonferroni")

# Tasot 1 ja 5, 2 ja 5 sekä 3 ja 5 poikkeavat merkitsevästi

malli.aov <- aov(TS ~ D)
malli.Tukey <- TukeyHSD(malli.aov)
malli.Tukey

# Tasot 1 ja 5, 2 ja 5 sekä 3 ja 5 poikkeavat merkitsevästi
# Tasot 1 ja 4: p-arvo lähellä 0.05 

#####################################################

### TEHT 5

## a)
yoeng <- read.table("http://users.jyu.fi/~junyblom/yoeng.dat",header=TRUE)
attach(yoeng)
KOULU <- factor(KOULU)
SP <- factor(SP)
yoeng.lm <- lm(PENGL~KOULU + SP)
summary(yoeng.lm)
confint(yoeng.lm)

## b)
# (Intercept)=242 on tyttöjen keskiarvo koulussa 1
# -21.4 samaa sukupuolta olevien ero Koulu2-koulu1 
# (vastaavasti koulu3-koulu1 ja koulu4-koulu1)
# -1.1 on saman koulun tyttöjen ja poikien pistemäärien erotus koulussa 1


## c)
koulu <- lm(PENGL~KOULU)
sp <- lm(PENGL~SP)
anova(koulu,yoeng.lm,test="F")
#p=iso sukupuolten välillä ei ole merkitsevää eroa

anova(sp,yoeng.lm,test="F")
#p=0.001 eli koulujen välillä on merkitsevää eroa

## Koulujen välillä on eroa, mutta sukupuolten välillä ei ole


