# install.packages("ISLR") library(ISLR) attach(Hitters) names(Hitters) dim(Hitters) sum(is.na(Hitters$Salary)) Hitters=na.omit(Hitters) dim(Hitters) sum(is.na(Hitters)) library(glmnet) grid=10^seq(10,-2,length=100) x=model.matrix(Salary~.,Hitters)[,-1] y=Hitters$Salary set.seed(1) train=sample(1:nrow(x), nrow(x)/2) test=(-train) y.test=y[test] # The Lasso lasso.mod=glmnet(x[train,],y[train],alpha=1,lambda=grid) plot(lasso.mod) set.seed(1) cv.out=cv.glmnet(x[train,],y[train],alpha=1) plot(cv.out) bestlam=cv.out$lambda.min bestlam lasso.pred=predict(lasso.mod,s=bestlam,newx=x[test,]) mean((lasso.pred-y.test)^2) out=glmnet(x,y,alpha=1,lambda=grid) lasso.coef=predict(out,type="coefficients",s=bestlam)[1:20,] lasso.coef lasso.coef[lasso.coef!=0] # OLS on full model # OLS on Best Subset Model derived from Training data set with 8 inputs library(leaps)