Assignment 8
Generate predictor X and noise vector 𝜀along with response vector 𝑦 and plot x and y:
Load the leaps package and use the regsubsets() function:
Subset selection object
Call: regsubsets.formula(y ~ poly(X, 10, raw = T), data = data.frame(y,
X), nvmax = 10)
10 Variables (and intercept)
Forced in Forced out
poly(X, 10, raw = T)1 FALSE FALSE
poly(X, 10, raw = T)2 FALSE FALSE
poly(X, 10, raw = T)3 FALSE FALSE
poly(X, 10, raw = T)4 FALSE FALSE
poly(X, 10, raw = T)5 FALSE FALSE
poly(X, 10, raw = T)6 FALSE FALSE
poly(X, 10, raw = T)7 FALSE FALSE
poly(X, 10, raw = T)8 FALSE FALSE
poly(X, 10, raw = T)9 FALSE FALSE
poly(X, 10, raw = T)10 FALSE FALSE
1 subsets of each size up to 10
Selection Algorithm: exhaustive
poly(X, 10, raw = T)1 poly(X, 10, raw = T)2 poly(X, 10, raw = T)3
1 ( 1 ) "*" " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) "*" "*" "*"
4 ( 1 ) "*" "*" "*"
5 ( 1 ) "*" "*" "*"
6 ( 1 ) "*" "*" "*"
7 ( 1 ) "*" "*" "*"
8 ( 1 ) "*" "*" "*"
9 ( 1 ) "*" "*" " "
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)4 poly(X, 10, raw = T)5 poly(X, 10, raw = T)6
1 ( 1 ) " " " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) " " " " " "
4 ( 1 ) " " "*" " "
5 ( 1 ) " " "*" "*"
6 ( 1 ) " " " " " "
7 ( 1 ) " " "*" "*"
8 ( 1 ) "*" " " "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)7 poly(X, 10, raw = T)8 poly(X, 10, raw = T)9
1 ( 1 ) " " " " " "
2 ( 1 ) " " " " " "
3 ( 1 ) " " " " " "
4 ( 1 ) " " " " " "
5 ( 1 ) " " " " " "
6 ( 1 ) "*" "*" "*"
7 ( 1 ) " " "*" " "
8 ( 1 ) " " "*" "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)10
1 ( 1 ) " "
2 ( 1 ) " "
3 ( 1 ) " "
4 ( 1 ) " "
5 ( 1 ) " "
6 ( 1 ) " "
7 ( 1 ) "*"
8 ( 1 ) "*"
9 ( 1 ) "*"
10 ( 1 ) "*"
Find the best model according to Cp, BIC, and adjusted R2, and report the coefficients of the best model:
Best Model (Cp): 4
Best Model (BIC): 3
Best Model (Adjusted R2): 4
(Intercept) poly(X, 10, raw = T)1 poly(X, 10, raw = T)2
4.061507 8.975280 1.876209
poly(X, 10, raw = T)3
1.017639
Repeat step 3 using forward stepwise selection and backward stepwise selection and compare the results:
Subset selection object
Call: regsubsets.formula(y ~ poly(X, 10, raw = T), data = data.frame(y,
X), nvmax = 10, method = "forward")
10 Variables (and intercept)
Forced in Forced out
poly(X, 10, raw = T)1 FALSE FALSE
poly(X, 10, raw = T)2 FALSE FALSE
poly(X, 10, raw = T)3 FALSE FALSE
poly(X, 10, raw = T)4 FALSE FALSE
poly(X, 10, raw = T)5 FALSE FALSE
poly(X, 10, raw = T)6 FALSE FALSE
poly(X, 10, raw = T)7 FALSE FALSE
poly(X, 10, raw = T)8 FALSE FALSE
poly(X, 10, raw = T)9 FALSE FALSE
poly(X, 10, raw = T)10 FALSE FALSE
1 subsets of each size up to 10
Selection Algorithm: forward
poly(X, 10, raw = T)1 poly(X, 10, raw = T)2 poly(X, 10, raw = T)3
1 ( 1 ) "*" " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) "*" " " "*"
4 ( 1 ) "*" "*" "*"
5 ( 1 ) "*" "*" "*"
6 ( 1 ) "*" "*" "*"
7 ( 1 ) "*" "*" "*"
8 ( 1 ) "*" "*" "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)4 poly(X, 10, raw = T)5 poly(X, 10, raw = T)6
1 ( 1 ) " " " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) "*" " " " "
4 ( 1 ) "*" " " " "
5 ( 1 ) "*" "*" " "
6 ( 1 ) "*" "*" " "
7 ( 1 ) "*" "*" "*"
8 ( 1 ) "*" "*" "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)7 poly(X, 10, raw = T)8 poly(X, 10, raw = T)9
1 ( 1 ) " " " " " "
2 ( 1 ) " " " " " "
3 ( 1 ) " " " " " "
4 ( 1 ) " " " " " "
5 ( 1 ) " " " " " "
6 ( 1 ) " " " " "*"
7 ( 1 ) " " " " "*"
8 ( 1 ) "*" " " "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)10
1 ( 1 ) " "
2 ( 1 ) " "
3 ( 1 ) " "
4 ( 1 ) " "
5 ( 1 ) " "
6 ( 1 ) " "
7 ( 1 ) " "
8 ( 1 ) " "
9 ( 1 ) " "
10 ( 1 ) "*"
Subset selection object
Call: regsubsets.formula(y ~ poly(X, 10, raw = T), data = data.frame(y,
X), nvmax = 10, method = "backward")
10 Variables (and intercept)
Forced in Forced out
poly(X, 10, raw = T)1 FALSE FALSE
poly(X, 10, raw = T)2 FALSE FALSE
poly(X, 10, raw = T)3 FALSE FALSE
poly(X, 10, raw = T)4 FALSE FALSE
poly(X, 10, raw = T)5 FALSE FALSE
poly(X, 10, raw = T)6 FALSE FALSE
poly(X, 10, raw = T)7 FALSE FALSE
poly(X, 10, raw = T)8 FALSE FALSE
poly(X, 10, raw = T)9 FALSE FALSE
poly(X, 10, raw = T)10 FALSE FALSE
1 subsets of each size up to 10
Selection Algorithm: backward
poly(X, 10, raw = T)1 poly(X, 10, raw = T)2 poly(X, 10, raw = T)3
1 ( 1 ) "*" " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) "*" " " " "
4 ( 1 ) "*" " " " "
5 ( 1 ) "*" " " " "
6 ( 1 ) "*" " " " "
7 ( 1 ) "*" " " " "
8 ( 1 ) "*" " " " "
9 ( 1 ) "*" "*" " "
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)4 poly(X, 10, raw = T)5 poly(X, 10, raw = T)6
1 ( 1 ) " " " " " "
2 ( 1 ) "*" " " " "
3 ( 1 ) "*" "*" " "
4 ( 1 ) "*" "*" "*"
5 ( 1 ) "*" "*" "*"
6 ( 1 ) "*" "*" "*"
7 ( 1 ) "*" "*" "*"
8 ( 1 ) "*" "*" "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)7 poly(X, 10, raw = T)8 poly(X, 10, raw = T)9
1 ( 1 ) " " " " " "
2 ( 1 ) " " " " " "
3 ( 1 ) " " " " " "
4 ( 1 ) " " " " " "
5 ( 1 ) " " "*" " "
6 ( 1 ) " " "*" " "
7 ( 1 ) "*" "*" " "
8 ( 1 ) "*" "*" "*"
9 ( 1 ) "*" "*" "*"
10 ( 1 ) "*" "*" "*"
poly(X, 10, raw = T)10
1 ( 1 ) " "
2 ( 1 ) " "
3 ( 1 ) " "
4 ( 1 ) " "
5 ( 1 ) " "
6 ( 1 ) "*"
7 ( 1 ) "*"
8 ( 1 ) "*"
9 ( 1 ) "*"
10 ( 1 ) "*"
Best Model (Forward, BIC): 4
Best Model (Backward, BIC): 6