VARselect: VARselect

VARselectR Documentation

VARselect

Description

Estimation in the regression model : Y= X \beta + \sigma N(0,1)
Variable selection by choosing the best predictor among predictors emanating
from different methods as lasso, elastic-net, adaptive lasso, pls, randomForest.

Usage

VARselect(Y, X, dmax = NULL, normalize = TRUE, method = c("lasso", 
    "ridge", "pls", "en", "ALridge", "ALpls", "rF", "exhaustive"), 
    pen.crit = NULL, lasso.dmax = NULL, ridge.dmax = NULL, pls.dmax = NULL, 
    en.dmax = NULL, ALridge.dmax = NULL, ALpls.dmax = NULL, rF.dmax = NULL, 
    exhaustive.maxdim = 5e+05, exhaustive.dmax = NULL, en.lambda = c(0.01, 
        0.1, 0.5, 1, 2, 5), ridge.lambda = c(0.01, 0.1, 0.5, 
        1, 2, 5), rF.lmtry = 2, pls.ncomp = 5, ALridge.lambda = c(0.01, 
        0.1, 0.5, 1, 2, 5), ALpls.ncomp = 5, max.steps = NULL, 
    K = 1.1, verbose = TRUE, long.output = FALSE)

Arguments

Y

vector with n components : response variable.

X

matrix with n rows and p columns : covariates.

dmax

integer : maximum number of variables in the lasso estimator. dmax \le D where
D = min (3*p/4 , n-5) if p \ge n
D= min(p,n-5) if p < n.
Default : dmax = D.

normalize

logical : if TRUE the columns of X are scaled

method

vector of characters whose components are subset of
“lasso”, “ridge”, “pls”, “en”, “ALridge”, “ALpls”, “rF”, “exhaustive”.

pen.crit

vector with dmax+1 components : for d=0, ..., dmax, penalty[d+1] gives the value of the penalty for the dimension d. Default : penalty = NULL. In that case, the penalty will be calculated by the function penalty.

lasso.dmax

integer lower than dmax, default = dmax.

ridge.dmax

integer lower than dmax, default = dmax.

pls.dmax

integer lower than dmax, default = dmax.

en.dmax

integer lower than dmax, default = dmax.

ALridge.dmax

integer lower than dmax, default = dmax.

ALpls.dmax

integer lower than dmax, default = dmax.

rF.dmax

integer lower than dmax, default = dmax.

exhaustive.maxdim

integer : maximum number of subsets of covariates considered in the exhaustive method. See details.

exhaustive.dmax

integer lower than dmax, default = dmax

en.lambda

vector : tuning parameter of the ridge. It is the input parameter lambda of function enet

ridge.lambda

vector : tuning parameter of the ridge. It is the input parameter lambda of function lm.ridge

rF.lmtry

vector : tuning paramer mtry of function randomForest, mtry =p/rF.lmtry.

pls.ncomp

integer : tuning parameter of the pls. It is the input parameter ncomp of the function plsr. See details.

ALridge.lambda

similar to ridge.lambda in the adaptive lasso procedure.

ALpls.ncomp

similar to pls.ncomp in the adaptive lasso procedure. See details.

max.steps

integer. Maximum number of steps in the lasso procedure. Corresponds to the input max.steps of the function enet.
Default : max.steps = 2*min(p,n)

K

scalar : value of the parameter K in the LINselect criteria.

verbose

logical : if TRUE a trace of the current process is displayed in real time.

long.output

logical : if FALSE only the component summary will be returned. See Value.

Details

When method is pls or ALpls, the LINselect procedure is carried out considering the number of components in the pls method as the tuning parameter.
This tuning parameter varies from 1 to pls.ncomp.

When method is exhaustive, the maximum number of variate d is calculated as follows.
Let q be the largest integer such that choose(p,q) < exhaustive.maxdim. Then d = min(q, exhaustive.dmax,dmax).

Value

A list with at least length(method) components.
For each procedure in method a list with components

  • support: vector of integers. Estimated support of the parameters \beta for the considered procedure.

  • crit: scalar equals to the LINselect criteria calculated in the estimated support.

  • fitted: vector with length n. Fitted value of the response calculated when the support of \beta equals support.

  • coef: vector whose first component is the estimated intercept.
    The other components are the estimated non zero coefficients when the support of \beta equals support.

If length(method) > 1, the additional component summary is a list with three components:

  • support: vector of integers. Estimated support of the parameters \beta corresponding to the minimum of the criteria among all procedures.

  • crit: scalar. Minimum value of the criteria among all procedures.

  • method: vector of characters. Names of the procedures for which the minimum is reached

If pen.crit = NULL, the component pen.crit gives the values of the penalty calculated by the function penalty. If long.output is TRUE the component named chatty is a list with length(method) components.
For each procedure in method, a list with components

  • support where support[[l]] is a vector of integers containing an estimator of the support of the parameters \beta.

  • crit : vector where crit[l] contains the value of the LINselect criteria calculated in support[[l]].

Note

When method is lasso, library elasticnet is loaded.

When method is en, library elasticnet is loaded.

When method is ridge, library MASS is loaded.

When method is rF, library randomForest is loaded.

When method is pls, library pls is loaded.

When method is ALridge, libraries MASS and elasticnet are loaded.

When method is ALpls, libraries pls and elasticnet are loaded.

When method is exhaustive, library gtools is loaded.

Author(s)

Yannick Baraud, Christophe Giraud, Sylvie Huet

References

See Baraud et al. 2010 http://hal.archives-ouvertes.fr/hal-00502156/fr/
Giraud et al., 2013, https://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.ss/1356098553

Examples

#source("charge.R")
library("LINselect")

# simulate data with
# beta=c(rep(2.5,5),rep(1.5,5),rep(0.5,5),rep(0,p-15))
ex <- simulData(p=100,n=100,r=0.8,rSN=5)

## Not run: ex1.VARselect <- VARselect(ex$Y,ex$X,exhaustive.dmax=2)

## Not run: data(diabetes)
## Not run: attach(diabetes)
## Not run: ex.diab <- VARselect(y,x2,exhaustive.dmax=5)
## Not run: detach(diabetes)



LINselect documentation built on Aug. 30, 2023, 9:10 a.m.