Download and read data

url <- "https://d396qusza40orc.cloudfront.net/appliedregression/Homeworks/week2-HW-data.csv"
download.file(url, "sbp.csv", mode = "wb")
bp <- read.csv("sbp.csv")
names(bp) <- tolower(names(bp))

Exercise 1

Create a list of model formulae to avoid copypasting

f <- c("sbp ~ smk", "sbp ~ quet", "quet ~ age", "sbp ~ age")
form <- lapply(f, as.formula, env = new.env())

Create a list of ANOVA tables

( anTables <- lapply(form, 
                     function(x) anova(lm(x, data = bp))) )
## [[1]]
## Analysis of Variance Table
## 
## Response: sbp
##           Df Sum Sq Mean Sq F value Pr(>F)
## smk        1  393.1   393.1  1.9548 0.1723
## Residuals 30 6032.9   201.1               
## 
## [[2]]
## Analysis of Variance Table
## 
## Response: sbp
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## quet       1 3537.9  3537.9  36.751 1.172e-06 ***
## Residuals 30 2888.0    96.3                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## [[3]]
## Analysis of Variance Table
## 
## Response: quet
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## age        1 4.9360  4.9360  54.367 3.253e-08 ***
## Residuals 30 2.7237  0.0908                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## [[4]]
## Analysis of Variance Table
## 
## Response: sbp
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## age        1 3861.6  3861.6  45.177 1.894e-07 ***
## Residuals 30 2564.3    85.5                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Exercise 2

Testing for significance:

ftests <- sapply(anTables, function (x) ifelse(x$Pr[1] > .05, "Fail to reject",
                                     "Reject"))
names(ftests) <- f
ftests
##        sbp ~ smk       sbp ~ quet       quet ~ age        sbp ~ age 
## "Fail to reject"         "Reject"         "Reject"         "Reject"

Exercise 3

Hypothesis testing performed in ex. 2 gave us the evidence that: