# Chapter 6 page 259: 2,9,11
#9
library(pcr)
## Warning: package 'pcr' was built under R version 4.1.3
library(glmnet)
## Warning: package 'glmnet' was built under R version 4.1.3
## Loading required package: Matrix
## Loaded glmnet 4.1-4
library(ISLR)
## Warning: package 'ISLR' was built under R version 4.1.3
data(College)
set.seed(1)
train=sample(1:dim(College)[1],dim(College)[1]/2)
test<--train
College.train=College[train,]
College.test=College[test,]
fit.lm=lm(Apps~.,data=College.train)
pred.lm=predict(fit.lm,College.test)
mean((pred.lm-College.test$Apps)^2)
## [1] 1135758
train.mat=model.matrix(Apps~.,data=College.train)
test.mat=model.matrix(Apps~.,data=College.test)
grid=10^seq(4,-2,length=100)
fit.ridge=glmnet(train.mat,College.train$Apps,alpha=0,lambda=grid,thresh=1e-12)
cv.ridge=cv.glmnet(train.mat,College.train$Apps,alpha=0,lambda=grid,threst=1e-12)
bestlam.ridge=cv.ridge$lambda.min
bestlam.ridge
## [1] 0.01
fit.lasso=glmnet(train.mat,College.train$Apps,alpha=1,lambda=grid,threst=1e-12)
cv.lasso=cv.glmnet(train.mat,College.train$Apps,alpha=1,lambda=grid,threst=1e-12)
bestlam.lasso=cv.lasso$lambda.min
bestlam.lasso
## [1] 0.01
pred.lasso=predict(fit.lasso,s=bestlam.lasso,newx=test.mat)
mean((pred.lasso-College.test$Apps)^2)
## [1] 1134622
predict(fit.lasso,s=bestlam.lasso,type="coefficients")
## 19 x 1 sparse Matrix of class "dgCMatrix"
## s1
## (Intercept) -7.913734e+02
## (Intercept) .
## PrivateYes -3.074456e+02
## Accept 1.778334e+00
## Enroll -1.460578e+00
## Top10perc 6.666608e+01
## Top25perc -2.226202e+01
## F.Undergrad 9.130254e-02
## P.Undergrad 9.723281e-03
## Outstate -1.083198e-01
## Room.Board 2.116985e-01
## Books 2.915430e-01
## Personal 6.173312e-03
## PhD -1.546465e+01
## Terminal 6.396990e+00
## S.F.Ratio 2.283753e+01
## perc.alumni 1.121415e+00
## Expend 4.858961e-02
## Grad.Rate 7.478376e+00
test.avg=mean(College.test$Apps)
lm.r2=1-mean((pred.lm-College.test$Apps)^2/mean((test.avg-College.test$Apps)^2))
lasso.r2=1-mean((pred.lasso-College.test$Apps)^2/mean((test.avg-College.test$Apps)^2))