# R source file for the solutions to problems given in Chapter 3
# Time-stamp: <2008-02-18 08:24:28 chl>

##############################################################################
n <- 100
x <- rnorm(n)
y <- 2*x+rexp(n,1)
plot(x,y)
points(x[x<1 & y>5],y[x<1 & y>5],pch=19)
ols <- lm(y~x)
abline(ols)
summary(ols)
library(quantreg)
lad <- rq(y~x)
abline(lad$coefficients[1],lad$coefficients[2],col=2)
summary(lad)

##############################################################################
library(MASS)
hm <- rlm(y~x)
abline(hm$coefficients[1],hm$coefficients[2],col=3)
summary(hm)
#library(lqs)  # library lqs is now included in the MASS package
lts <- ltsreg(y~x)
abline(lts$coefficients[1],lts$coefficients[2],col=4)
legend.text <-
c(paste("OLS",round(ols$coefficients[2],3)),paste("LAD",round(lad$coefficients[2],3)),
paste("Huber",round(hm$coefficients[2],3)),paste("LTS",round(lts$coefficients[2],3)))
legend("topleft",legend.text,lty=1,col=1:4)
title(main="Regression lines and Slopes estimates")

##############################################################################
n <- 100
true.sdx <- 2.5
true.slope <- 3
x <- rnorm(n,23,true.sdx)
y <- true.slope*x+rnorm(n)
sdx <- sd(x)
sdy <- sd(y)
cor.xy <- cor(x,y)
cor.xy*((n-1)/n*sdy)/((n-1)/n*sdx)
cor.xy*sdy/sdx
summary(lm(y~x))$coefficients[[2]]
plot(x,y)

##############################################################################
n <- 100
x <- runif(n,-10,10)
expected.y <- x^2
y <- x^2+rnorm(n)
cor(x,y)
plot(x,y)

##############################################################################
sim <- function(n=100) {
    x <- runif(n,-10,10)
    y <- x^2+rnorm(n)
    return(cor(x,y))
}

##############################################################################
set.seed(12345)
res <- replicate(100,sim())
summary(res)
hist(res)

##############################################################################
data(anscombe)
var.names <- colnames(anscombe)
par(mfrow=c(2,2))
for (i in 1:4)
        plot(anscombe[,i],anscombe[,i+4],xlab=var.names[i],ylab=var.names[i+4])

##############################################################################
HIV <- matrix(c(3,2,4,22),nrow=2)
dimnames(HIV) <- list(c("Cases","Noncases"),c("Exposed","Unexposed"))
HIV
apply(HIV,1,sum)
apply(HIV,2,sum)

##############################################################################
er <- (HIV[1,1]/sum(HIV[,1]))-(HIV[1,2]/sum(HIV[,2]))
rr <- (HIV[1,1]/sum(HIV[,1]))/(HIV[1,2]/sum(HIV[,2]))
or <- (HIV[1,1]*HIV[2,2])/(HIV[2,1]*HIV[1,2])

##############################################################################
ESOP <- matrix(c(255,9,520,191),nrow=2)
dimnames(ESOP) <- list(c("Control","Case"),c("0-9 g/day","10+ g/day"))
ESOP

##############################################################################
(ESOP[1,1]*ESOP[2,2])/(ESOP[1,2]*ESOP[2,1])

##############################################################################
library(vcd)
or <- oddsratio(ESOP,log=FALSE)
or
confint(or)
plot(or)
fourfold(or)

##############################################################################
library(epicalc)
cci(191,520,9,255,design="case-control")

##############################################################################
LEUK <- read.table("leuk.txt",header=TRUE)
library(survival)
LEUK.surv <- Surv(LEUK$time,LEUK$cens)
LEUK.km <- survfit(LEUK.surv~group,data=LEUK)
plot(LEUK.km[1])
lines(LEUK.km[2],col="gray60")
legend("topright",c("6-MP","Placebo"),lty=1,col=c("black","gray60"),bty="n")
title(xlab="Weeks since randomization",ylab="Proportion in remission")