adapt_cv {adapt4pv} | R Documentation |
fit an adaptive lasso with adaptive weights derived from lasso-cv
Description
Fit a first lasso regression with cross-validation to determine adaptive weights.
Run a cross-validation to determine an optimal lambda.
Two options for implementing cross-validation for the adaptive lasso are possible through the type_cv
parameter (see bellow).
Can deal with very large sparse data matrices.
Intended for binary reponse only (option family = "binomial"
is forced).
The cross-validation criterion used is deviance.
Depends on the cv.glmnet
function from the package glmnet
.
Usage
adapt_cv(
x,
y,
gamma = 1,
nfolds = 5,
foldid = NULL,
type_cv = "proper",
betaPos = TRUE,
...
)
Arguments
x |
Input matrix, of dimension nobs x nvars. Each row is an observation
vector. Can be in sparse matrix format (inherit from class
|
y |
Binary response variable, numeric. |
gamma |
Tunning parameter to defined the penalty weights. See details below. Default is set to 1. |
nfolds |
Number of folds - default is 5. Although |
foldid |
An optional vector of values between 1 and |
type_cv |
Character, indicates which implementation of cross-validation is performed for the adaptive lasso: a "naive" one, where adaptive weights obtained on the full data are used, and a "proper" one, where adaptive weights are calculated for each training sets. Could be either "naive" or "proper". Default is "proper". |
betaPos |
Should the covariates selected by the procedure be
positively associated with the outcome ? Default is |
... |
Other arguments that can be passed to |
Details
The adaptive weight for a given covariate i is defined by
w_i = 1/|\beta^{CV}_i|^\gamma
where
\beta^{CV}_i
is the PENALIZED regression coefficient associated
to covariate i
obtained with cross-validation.
Value
An object with S3 class "adaptive"
.
aws |
Numeric vector of penalty weights derived from cross-validation. Length equal to nvars. |
criterion |
Character, indicates which criterion is used with the
adaptive lasso for variable selection. For |
beta |
Numeric vector of regression coefficients in the adaptive lasso.
If |
selected_variables |
Character vector, names of variable(s) selected
with this adaptive approach.
If |
Author(s)
Emeline Courtois
Maintainer: Emeline Courtois
emeline.courtois@inserm.fr
Examples
set.seed(15)
drugs <- matrix(rbinom(100*20, 1, 0.2), nrow = 100, ncol = 20)
colnames(drugs) <- paste0("drugs",1:ncol(drugs))
ae <- rbinom(100, 1, 0.3)
acv <- adapt_cv(x = drugs, y = ae, nfolds = 5)