Learn R Programming

quantreg (version 5.98)

rq.fit.lasso: Lasso Penalized Quantile Regression

Description

The fitting method implements the lasso penalty for fitting quantile regression models. When the argument lambda is a scalar the penalty function is the l1 norm of the last (p-1) coefficients, under the presumption that the first coefficient is an intercept parameter that should not be subject to the penalty. When lambda is a vector it should have length equal the column dimension of the matrix x and then defines a coordinatewise specific vector of lasso penalty parameters. In this case lambda entries of zero indicate covariates that are not penalized. If lambda is not specified, a default value is selected according to the proposal of Belloni and Chernozhukov (2011). See LassoLambdaHat for further details. There should be a sparse version of this, but isn't (yet). There should also be a preprocessing version, but isn't (yet).

Usage

rq.fit.lasso(x, y, tau = 0.5, lambda = NULL, beta = .99995, eps = 1e-06)

Value

Returns a list with a coefficient, residual, tau and lambda components. When called from "rq" (as intended) the returned object has class "lassorqs".

Arguments

x

the design matrix

y

the response variable

tau

the quantile desired, defaults to 0.5.

lambda

the value of the penalty parameter(s) that determine how much shrinkage is done. This should be either a scalar, or a vector of length equal to the column dimension of the x matrix. If unspecified, a default value is chosen according to the proposal of Belloni and Chernozhukov (2011).

beta

step length parameter for Frisch-Newton method.

eps

tolerance parameter for convergence.

Author

R. Koenker

References

Koenker, R. (2005) Quantile Regression, CUP.

Belloni, A. and V. Chernozhukov. (2011) l1-penalized quantile regression in high-dimensional sparse models. Annals of Statistics, 39 82 - 130.

See Also

rq

Examples

Run this code
n <- 60
p <- 7
rho <- .5
beta <- c(3,1.5,0,2,0,0,0)
R <- matrix(0,p,p)
for(i in 1:p){
        for(j in 1:p){
                R[i,j] <- rho^abs(i-j)
                }
        }
set.seed(1234)
x <- matrix(rnorm(n*p),n,p) %*% t(chol(R))
y <- x %*% beta + rnorm(n)

f <- rq(y ~ x, method="lasso",lambda = 30)
g <- rq(y ~ x, method="lasso",lambda = c(rep(0,4),rep(30,4)))

Run the code above in your browser using DataLab