Learn R Programming

chemometrics (version 1.4.4)

lassoCV: CV for Lasso regression

Description

Performs cross-validation (CV) for Lasso regression and plots the results in order to select the optimal Lasso parameter.

Usage

lassoCV(formula, data, K = 10, fraction = seq(0, 1, by = 0.05), trace = FALSE, 
plot.opt = TRUE, sdfact = 2, legpos = "topright", ...)

Value

cv

MSEP values at each value of fraction

cv.error

standard errors for each value of fraction

SEP

SEP value for each value of fraction

ind

index of fraction with optimal choice for fraction

sopt

optimal value for fraction

fraction

all values considered for fraction

Arguments

formula

formula, like y~X, i.e., dependent~response variables

data

data frame to be analyzed

K

the number of segments to use for CV

fraction

fraction for Lasso parameters to be used for evaluation, see details

trace

if 'TRUE', intermediate results are printed

plot.opt

if TRUE a plot will be generated that shows optimal choice for "fraction"

sdfact

factor for the standard error for selection of the optimal parameter, see details

legpos

position of the legend in the plot

...

additional plot arguments

Author

Peter Filzmoser <P.Filzmoser@tuwien.ac.at>

Details

The parameter "fraction" is the sum of absolute values of the regression coefficients for a particular Lasso parameter on the sum of absolute values of the regression coefficients for the maximal possible value of the Lasso parameter (unconstrained case), see also lars. The optimal fraction is chosen according to the following criterion: Within the CV scheme, the mean of the SEPs is computed, as well as their standard errors. Then one searches for the minimum of the mean SEPs and adds sdfact*standarderror. The optimal fraction is the smallest fraction with an MSEP below this bound.

References

K. Varmuza and P. Filzmoser: Introduction to Multivariate Statistical Analysis in Chemometrics. CRC Press, Boca Raton, FL, 2009.

See Also

cv.lars, lassocoef

Examples

Run this code
data(PAC)
# takes some time: # res <- lassoCV(y~X,data=PAC,K=5,fraction=seq(0.1,0.5,by=0.1))

Run the code above in your browser using DataLab