|
Glmnet - Introduction
Here is a brief introduction of the package. For more details and examples, use help glmnet or help cvglmnet in Matlab.
Description
Suppose is the input matrix and the response vector. For the Gaussian family, glmnet solves the penalized residual sum of squares,
where is a complexity parameter and is a compromise between ridge and lasso. Note that it becomes the lasso when and the ridge regression when .
For other families, glmnet maximizes the appropriate penalized log-likelihood (partial likelihood for the cox model), or minimize the penalized negative one. Take the binomial model for example, it solves
The algorithm uses cyclical coordinate descent in a pathwise fashion. In addition to basic settings, many more options are available: observation weights, choice of lambda sequence, grouping, etc. For more information, see the reference papers, help file or the documentation (in progress).
Two central functions of the package are:
glmnet.m - basic function that returns a structure containing all essential information for further use, like printing, plotting and prediction.
cvglmnet.m - a more commonly used function that returns a structure after selecting the tuning parameter by cross-validation.
Example
We give a simple example here just to point the way. More exploration can be done by referring to the help files or the illustrative documentation.
Suppose x is the input matrix and y the response vector. Then,
fit = glmnet(x, y) – fits the model under all default settings, the structure variable fit saves all necessary information.
glmnetPrint(fit) – prints relevant information of the fitted object, fit here.
glmnetPlot(fit) – plots the coefficients from the fitted object.
cvfit = cvglmnet(x, y) – fits the model by cross-validation under all default settings, with results saved in cvfit.
cvglmnetPlot(cvfit) – plots the cross-validation curve.
List of Major Functions
cvglmnet.m
cvglmnetCoef.m
cvglmnetPlot.m
cvglmnetPredict.m
glmnet.m
glmnetCoef.m
glmnetControl.m
glmnetPlot.m
glmnetPredict.m
glmnetPrint.m
glmnetSet.m
|