## Slide 7
ozone <- read.delim("http://web.as.uky.edu/statistics/users/pbreheny/760/data/ozone.txt")
panel.histogram <- function(x,...) {
  par(new = TRUE)
  fit <- hist(x, plot=FALSE)
  hist(x, main = "", axes = FALSE, col = "gray",ylim=c(0,max(fit$counts)*1.5))
}
pairs(ozone, pch=19, cex=.8, diag.panel=panel.histogram)

## Slide 8-9
fit <- lm(Ozone~Solar+Wind+Temp+Day, data=ozone)
Days <- data.frame(Solar=c(180, 180), Wind=c(5,15), Temp=c(90,70), Day=274)
predict(fit, Days, interval="confidence")

## Slides 10-11
fit <- lm(log(Ozone)~Solar+Wind+Temp+Day, data=ozone)
p <- predict(fit, Days, interval="confidence")
exp(p)

## Slide 13
fit1 <- lm(Ozone~Solar+Wind+Temp+Day, data=ozone)
qqnorm(fit1$residuals,main=expression(Ozone), las=1)
qqline(fit1$residuals)
fit2 <- lm(log(Ozone)~Solar+Wind+Temp+Day, data=ozone)
qqnorm(fit2$residuals,main=expression(log(Ozone)), las=1)
qqline(fit2$residuals)
fit3 <- lm(log(Ozone+3)~Solar+Wind+Temp+Day, data=ozone)
qqnorm(fit3$residuals,main=expression(log(Ozone+3)), las=1)
qqline(fit3$residuals)

## Slide 14
qqnorm(fit1$residuals,main=expression(Ozone), las=1)
qqline(fit1$residuals)
fit4 <- lm(sqrt(Ozone)~Solar+Wind+Temp+Day, data=ozone)
qqnorm(fit4$residuals,main=expression(sqrt(Ozone)), las=1)
qqline(fit4$residuals)
fit5 <- lm(Ozone^.22~Solar+Wind+Temp+Day, data=ozone)
qqnorm(fit5$residuals,main=expression(sqrt(Ozone,5)), las=1)
qqline(fit5$residuals)

## Slide 15
rbind(c(summary(fit1)$r.sq,summary(fit2)$r.sq,summary(fit3)$r.sq,summary(fit4)$r.sq,summary(fit5)$r.sq),c(summary(fit1)$adj.r.sq,summary(fit2)$adj.r.sq,summary(fit3)$adj.r.sq,summary(fit4)$adj.r.sq,summary(fit5)$adj.r.sq))
cbind(summary(fit1)$coef[-1,4],summary(fit3)$coef[-1,4],summary(fit5)$coef[-1,4])

## Slide 17
require(visreg)
fit <- lm(Ozone~Solar+Wind+Temp+Day, data=ozone)
visreg(fit, "Wind")

## Slide 18
fit <- lm(Ozone~Solar+I(exp(-Wind/5))+Temp+Day, data=ozone)
visreg(fit, "Wind")

## Slide 19
fit <- lm(log(Ozone)~Solar+Wind+Temp+Day, data=ozone)
visreg(fit, "Wind")
visreg(fit, "Temp")
visreg(fit, "Wind", trans=exp, ylab="Ozone")
visreg(fit, "Temp", trans=exp, ylab="Ozone")

## Slide 20
summary(fit <- lm(log(Ozone+3)~Solar+I(exp(-Wind/5))+Temp+Day, data=ozone))
visreg(fit, "Wind", trans=function(x) exp(x)-3, ylab="Ozone")
