Intructions
Assignment Questions
Q1
We use Wage data set which is in the library ISLR2. The Wage data set contains the following variables.
## year age maritl race ## Min. :2003 Min. :18.00 1. Never Married: 648 1. White:2480
library(ISLR2) #head(Wage) summary(Wage)
## 1st Qu.:2004 1st Qu.:33.75 2. Married ## Median :2006 Median :42.00 3. Widowed ## Mean :2006 Mean :42.41 4. Divorced ## 3rd Qu.:2008 3rd Qu.:51.00 5. Separated : 55
## ## ## ## ## 2. HS Grad ## 3. Some College :650 3. East North Central: 0 ## 4. College Grad :685 4. West North Central: 0 ## 5. Advanced Degree:426 5. South Atlantic : 0
Max. :2009 1.<HSGrad
Max. :80.00
education region jobclass
:268 2. Middle Atlantic :3000 1. Industrial :1544
:971 1. New England : 0 2. Information:1456
## ## ## ## 1. <=Good ## 2. >=Very Good:2142 2. No : 917 1st Qu.:4.447 1st Qu.: 85.38
-
## Median :4.653
-
## Mean :4.654
-
## 3rd Qu.:4.857
-
## Max. :5.763 ##
Median :104.92 Mean :111.70 3rd Qu.:128.68 Max. :318.34
6. East South Central: 0
(Other) :0 health_ins logwage wage
health : 858 1. Yes:2083 Min. :3.000 Min. : 20.09
In the first part of the assignment. We are interested in wage in relation to year, age and education. This is a paired plot.
pairs(data.frame(Wage$wage, Wage$year, Wage$age, Wage$education))
:2074 2. Black: 293 : 19 3. Asian: 190 : 204 4. Other: 37
2
Wage.wage
50 150 250
20 40 60 80
2003 2005 2007 2009 1 2 3 4 5
Wage.year
Wage.age
It is known that year has approximately linear trend and the variable education is a categorical variable. We use the natural spline curve fitting for the trend of age. For this we use function ns() in the splines package and lm() function. We fit the following models
model1: model2: model3: model4: model5:
waga ∼ year + ns(age, df = 1) + education, waga ∼ year + ns(age, df = 3) + education, waga ∼ year + ns(age, df = 5) + education, waga ∼ year + ns(age, df = 7) + education, waga ∼ year + ns(age, df = 9) + education.
(a) (10 marks) Fit the model and use anova() function to do the deviance test to compare the models. Choose the best model.
library(splines)
- (b) (5 marks) Calculate AIC for each model fitted in (a). Choose the best model using the value of AIC.
- (c) (10 marks) Split the data set (100%) into a training set (70%) and a test set (30%). Then fit model1–model5 on the training set, and calculate the test MSE for each model. Choose the best model.
set.seed(11)
(d) (10 marks) By combining the result from (a), (b) and (c), decide the best model. Refit the chosen
model using all of the Wage data set. Interpret the out of the summary() function. Q2
Here we will predict the number of applications received Apps using the other variables in the “College” data set.
The data set contains 777 observations on the following 18 variables.
Wage.education
# Private: A factor with levels No and Yes indicating private or public university # Apps: Number of applications received
3
12345 2003 2007
20 40 60 80
50 200
# Accept: Number of applications accepted # Enroll: Number of new students enrolled # Top10perc: Pct. new students from top 10% of H.S. class # Top25perc: Pct. new students from top 25% of H.S. class # F.Undergrad: Number of fulltime undergraduates # P.Undergrad: Number of parttime undergraduates # Outstate: Out-of-state tuition # Room.Board: Room and board costs # Books: Estimated book costs # Personal: Estimated personal spending # PhD: Pct. of faculty with Ph.D.'s # Terminal: Pct. of faculty with terminal degree # S.F.Ratio: Student/faculty ratio # perc.alumni: Pct. alumni who donate # Expend: Instructional expenditure per student # Grad.Rate: Graduation rate
library(ISLR) ##
## Attaching package: 'ISLR'
## The following objects are masked from 'package:ISLR2': ## ## Auto, Credit
## Private Apps Accept Enroll ## No :212 Min. : 81 Min. : 72 Min. : 35 ## Yes:565 1st Qu.: 776 1st Qu.: 604 1st Qu.: 242 1st Qu.:15.00
data(College) summary(College)
-
## Median : 1558
- ## Mean : 3002
-
## 3rd Qu.: 3624
-
## Max. :48094
-
## Top25perc F.Undergrad P.Undergrad Outstate
-
## Min. : 9.0 Min. : 139 Min. : 1.0 Min. : 2340 ## 1st Qu.: 41.0 1st Qu.: 992 1st Qu.: 95.0 1st Qu.: 7320 ## Median : 54.0 Median : 1707 Median : 353.0 Median : 9990 ## Mean : 55.8 Mean : 3700 Mean : 855.3 Mean :10441 ## 3rd Qu.: 69.0 3rd Qu.: 4005 3rd Qu.: 967.0 3rd Qu.:12925 ## Max. :100.0 Max. :31643 Max. :21836.0 Max. :21700 ## Room.Board Books Personal PhD
## Min. :1780 Min. : 96.0 Min. : 250 Min. : 8.00 ## 1st Qu.:3597 1st Qu.: 470.0 1st Qu.: 850 1st Qu.: 62.00 ## Median :4200 Median : 500.0 Median :1200 Median : 75.00 ## Mean :4358 Mean : 549.4 Mean :1341 Mean : 72.66 ## 3rd Qu.:5050 3rd Qu.: 600.0 3rd Qu.:1700 3rd Qu.: 85.00 ## Max. :8124 Max. :2340.0 Max. :6800 Max. :103.00 ## Terminal S.F.Ratio perc.alumni Expend
## Min. : 24.0 Min. : 2.50 Min. : 0.00 Min. : 3186 ## 1st Qu.: 71.0 1st Qu.:11.50 1st Qu.:13.00 1st Qu.: 6751 ## Median : 82.0 Median :13.60 Median :21.00 Median : 8377 ## Mean : 79.7 Mean :14.09 Mean :22.74 Mean : 9660
Median : 1110 Mean : 2019 3rd Qu.: 2424 Max. :26330
Median : 434 Mean : 780 3rd Qu.: 902 Max. :6392
Median :23.00 Mean :27.56 3rd Qu.:35.00 Max. :96.00
4
Top10perc Min. : 1.00
## 3rd Qu.: 92.0 3rd Qu.:16.50 3rd Qu.:31.00 3rd Qu.:10830 ## Max. :100.0 Max. :39.80 Max. :64.00 Max. :56233 ## Grad.Rate ## Min. : 10.00
## 1st Qu.: 53.00 ## Median : 65.00 ## Mean : 65.46 ## 3rd Qu.: 78.00 ## Max. :118.00
(a) (5 marks) (Create trainig set and test set) Split the data set (100%) into a training set (70%) and a test set (30%).
set.seed(11)
(b) (10 marks) (LASSO) Fit a lasso model on the training set, with λ chosen by cross-validation with the
1 se rule . Report the test error obtained, along with the of non-zero coefficient estimates. library(glmnet)
## Loading required package: Matrix ## Loaded glmnet 4.1-3
grid <- 10 ˆ seq(4, -2, length = 100)
• Test MSE
• Non-zero coefficient estimates
(c) (10 marks) Do the best subset selection with BIC and choose the best model.
library(leaps)
(d) (10 marks) Use all of the College data set, refit the models chosen by LASSO in (b) and best subset selection in (c). Print output of the function summary() for these models. Then compute ‘AIC’ and
‘BIC’. Between these 2 models, which model is the better model. Give reasons why.
[Total: 70 marks]
5






