Running head: HOMEWORK 8 – STEPWISE REGRESSION, LASSO AND ELASTIC NET 1
Homework 8 – Use Stepwise Regression, Lasso, Elastic net and glmnet
Amitava Chatterjee
OMS Analytics GATECH – Fall 2019
HOMEWORK 8 – STEPWISE RE
...
Running head: HOMEWORK 8 – STEPWISE REGRESSION, LASSO AND ELASTIC NET 1
Homework 8 – Use Stepwise Regression, Lasso, Elastic net and glmnet
Amitava Chatterjee
OMS Analytics GATECH – Fall 2019
HOMEWORK 8 – STEPWISE REGRESSION, LASSO AND ELASTIC NET 2
Abstract
Use different Regression models to look at the crime data with scaling to align and assess alpha
across stepwise, lasso, and elastic net regressions.
HOMEWORK 8 – STEPWISE REGRESSION, LASSO AND ELASTIC NET 3
Homework 8 – Use Stepwise Regression, Lasso, Elastic net and glmnet
Stepwise Regression
As per Wikipedia - Stepwise regression is a method of fitting regression models in which the choice
of predictive variables is carried out by an automatic procedure. In each step, a variable is considered
for addition to or subtraction from the set of explanatory variables based on some prespecified
criterion.
Lasso
As per Wikipedia - Lasso regression is a type of linear regression that uses shrinkage. Shrinkage is
where data values are shrunk towards a central point, like the mean. The lasso procedure encourages
simple, sparse models (i.e. models with fewer parameters).
Elastic net
The elastic net is a regularized regression method that linearly combines the L1 and L2 penalties of
the lasso and ridge methods.
HOMEWORK 8 – STEPWISE REGRESSION, LASSO AND ELASTIC NET 4
Question 11.1
Using the crime data set uscrime.txt from Questions 8.2, 9.1, and 10.1, build a regression
model using:
1. Stepwise regression
2. Lasso
3. Elastic net
For Parts 2 and 3, remember to scale the data first – otherwise, the regression coefficients will
be on different scales and the constraint won’t have the desired effect.
For Parts 2 and 3, use the glmnet function in R.
Notes on R:
• For the elastic net model, what we called λ in the videos, glmnet calls “alpha”; you can get a
range of results by varying alpha from 1 (lasso) to 0 (ridge regression) [and, of course, other values of
alpha in between].
• In a function call like glmnet(x,y,family=”mgaussian”,alpha=1) the predictors x need to be
in R’s matrix format, rather than data frame format. You can convert a data frame to a matrix using
as.matrix – for example, x <- as.matrix(data[,1:n-1])
• Rather than specifying a value of T, glmnet returns models for a variety of values of T.
Answer 11.1
Solution runs stepwise regression, lasso, and elastic net on both the scaled raw data and principal
components found using PCA. The R code for each model covers three things: (1) uses the method to
identify a set of variables to use, (2) builds a regression model using those variables, and (3)
eliminates the insignificant variables in the regression and then builds a regression using the
[Show More]