LassoBT {LassoBacktracking} | R Documentation |
Fit linear models with interactions using the Lasso.
Description
Computes a number of Lasso solution paths with increasing numbers of interactions present in the design matrices corresponding to each path. Previous paths are used to speed up computation of subsequent paths so the process is very fast.
Usage
LassoBT(
x,
y,
nlambda = 100L,
iter_max = 1L,
lambda.min.ratio = ifelse(nobs < nvars, 0.01, 1e-04),
lambda = NULL,
thresh = 1e-07,
verbose = FALSE,
inter_orig
)
Arguments
x |
input matrix of dimension nobs by nvars; each row is an observation vector. |
y |
response variable; shoud be a numeric vector. |
nlambda |
the number of lambda values. Must be at least 3. |
iter_max |
the number of iterations of the Backtracking algorithm to
run. |
lambda.min.ratio |
smallest value in |
lambda |
user supplied |
thresh |
convergence threshold for coordinate descent. Each inner
coordinate descent loop continues until either the maximum change in the
objective after any coefficient update is less than |
verbose |
if |
inter_orig |
an optional 2-row matrix with each column giving interactions that are to be added to the design matrix before the algorithm begins. |
Details
The Lasso optimisations are performed using coordinate descent similarly to the glmnet package. An intercept term is always included. Variables are centred and scaled to have equal empirical variance. Interactions are constructed from these centred and scaled variables, and the interactions themselves are also centred and scaled. Note the coefficients are returned on the original scale of the variables. Coefficients returned for interactions are for simple pointwise products of the original variables with no scaling.
Value
An object with S3 class "BT
".
call
the call that produced the object
a0
list of intercept vectors
beta
list of matrices of coefficients stored in sparse column format (
CsparseMatrix
)fitted
list of fitted values
lambda
the sequence of
lambda
values usednobs
the number of observations
nvars
the number of variables
var_indices
the indices of the non-constant columns of the design matrix
interactions
a 2-row matrix with columns giving the interactions that were added to the design matrix
path_lookup
a matrix with columns corresponding to iterations and rows to lambda values. Entry
ij
gives the component of thea0
andbeta
lists that gives the coefficients for thei
thlambda
value andj
th iterationl_start
a vector with component entries giving the minimimum
lambda
index in the corresponding copmonents ofbeta
anda0
References
Shah, R. D. (2016) Shah, R. D. (2016) Modelling interactions in high-dimensional data with Backtracking. JMLR, 17, 1-31 https://www.jmlr.org/papers/volume17/13-515/13-515.pdf
See Also
predict.BT
, coef.BT
methods and the cvLassoBT
function.
Examples
x <- matrix(rnorm(100*250), 100, 250)
y <- x[, 1] + x[, 2] - x[, 1]*x[, 2] + x[, 3] + rnorm(100)
out <- LassoBT(x, y, iter_max=10)