rq.fit.lasso: Lasso Penalized Quantile Regression

rq.fit.lassoR Documentation

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)

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.

Value

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

Author(s)

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

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)))

quantreg documentation built on Oct. 22, 2024, 5:07 p.m.