Description Usage Arguments Value Note See Also Examples
Adjust a linear model with elasticnet regularization, mixing a (possibly weighted) l1norm (LASSO) and a (possibly structured) l2norm (ridgelike). The solution path is computed at a grid of values for the l1penalty, fixing the amount of l2 regularization. See details for the criterion optimized.
1 2 3 4 5 6  elastic.net(x, y, lambda1 = NULL, lambda2 = 0.01, penscale = rep(1, p),
struct = NULL, intercept = TRUE, normalize = TRUE, naive = FALSE,
nlambda1 = ifelse(is.null(lambda1), 100, length(lambda1)),
min.ratio = ifelse(n <= p, 0.01, 1e04), max.feat = ifelse(lambda2 < 0.01,
min(n, p), min(4 * n, p)), beta0 = NULL, control = list(),
checkargs = TRUE)

x 
matrix of features, possibly sparsely encoded
(experimental). Do NOT include intercept. When normalized os

y 
response vector. 
lambda1 
sequence of decreasing l1penalty
levels. If 
lambda2 
real scalar; tunes the l2 penalty in the Elasticnet. Default is 0.01. Set to 0 to recover the Lasso. 
penscale 
vector with real positive values that weight the l1penalty of each feature. Default set all weights to 1. 
struct 
matrix structuring the coefficients (preferably
sparse). Must be at least positive semidefinite (this is checked
internally if the 
intercept 
logical; indicates if an intercept should be
included in the model. Default is 
normalize 
logical; indicates if variables should be
normalized to have unit L2 norm before fitting. Default is

naive 
logical; Compute either 'naive' of classic
elasticnet as defined in Zou and Hastie (2006): the vector of
parameters is rescaled by a coefficient 
nlambda1 
integer that indicates the number of values to put
in the 
min.ratio 
minimal value of l1part of the
penalty that will be tried, as a fraction of the maximal

max.feat 
integer; limits the number of features ever to
enter the model; i.e., nonzero coefficients for the Elasticnet:
the algorithm stops if this number is exceeded and 
beta0 
a starting point for the vector of parameter. When

control 
list of argument controlling low level options of the algorithm –use with care and at your own risk– :

checkargs 
logical; should arguments be checked to
(hopefully) avoid internal crashes? Default is

an object with class quadrupen
, see the
documentation page quadrupen
for details.
The optimized criterion is the following:
penscale
argument. The l2
structuring matrix S is provided via the struct
argument, a positive semidefinite matrix (possibly of class
Matrix
).
See also quadrupen
,
plot,quadrupenmethod
and crossval
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  ## Simulating multivariate Gaussian with blockwise correlation
## and piecewise constant vector of parameters
beta < rep(c(0,1,0,1,0), c(25,10,25,10,25))
cor < 0.75
Soo < toeplitz(cor^(0:(251))) ## Toeplitz correlation for irrelevant variables
Sww < matrix(cor,10,10) ## bloc correlation between active variables
Sigma < bdiag(Soo,Sww,Soo,Sww,Soo)
diag(Sigma) < 1
n < 50
x < as.matrix(matrix(rnorm(95*n),n,95) %*% chol(Sigma))
y < 10 + x %*% beta + rnorm(n,0,10)
labels < rep("irrelevant", length(beta))
labels[beta != 0] < "relevant"
## Comparing the solution path of the LASSO and the Elasticnet
plot(elastic.net(x,y,lambda2=0), label=labels) ## a mess
plot(elastic.net(x,y,lambda2=10), label=labels) ## a lot better

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.