VARselect {LINselect} | R 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. |
normalize |
logical : if TRUE the columns of X are scaled |
method |
vector of characters whose components are subset of |
pen.crit |
vector with |
lasso.dmax |
integer lower than |
ridge.dmax |
integer lower than |
pls.dmax |
integer lower than |
en.dmax |
integer lower than |
ALridge.dmax |
integer lower than |
ALpls.dmax |
integer lower than |
rF.dmax |
integer lower than |
exhaustive.maxdim |
integer : maximum number of subsets of covariates considered in the exhaustive method. See details. |
exhaustive.dmax |
integer lower than |
en.lambda |
vector : tuning parameter of the
ridge. It is the input parameter |
ridge.lambda |
vector : tuning parameter of the
ridge. It is the input parameter lambda of function
|
rF.lmtry |
vector : tuning paramer |
pls.ncomp |
integer : tuning parameter of the pls. It is the
input parameter |
ALridge.lambda |
similar to
|
ALpls.ncomp |
similar to |
max.steps |
integer. Maximum number of steps in the lasso
procedure. Corresponds to the input |
K |
scalar : value of the parameter |
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
equalssupport
.coef
: vector whose first component is the estimated intercept.
The other components are the estimated non zero coefficients when the support of\beta
equalssupport
.
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
wheresupport[[l]]
is a vector of integers containing an estimator of the support of the parameters\beta
.crit
: vector wherecrit[l]
contains the value of the LINselect criteria calculated insupport[[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)