Lasso Penalized Quantile Regression
The fitting method implements the lasso penalty of Tibshirani 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. There should be a sparse version of this, but isn't (yet).
rq.fit.lasso(x, y, tau = 0.5, lambda = 1, beta = .99995, eps = 1e-06)
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 |
beta |
step length parameter for Frisch-Newton method. |
eps |
tolerance parameter for convergence. |
Returns a list with a coefficient, residual, tau and lambda components.
When called from "rq"
(as intended) the returned object
has class "lassorqs".
R. Koenker
Koenker, R. (2005 Quantile Regression, CUP.
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)))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.