QICD(y, x, beta = NULL, tau, lambda, a = 3.7,
funname = "scad", intercept = TRUE, thresh = 1e-06,
exclude = NULL, maxin = 100, maxout = 20)
lambda
sequence. A numerical vector.
QICD
.
lambda
vector; if intercept is not included, diminsion is p x nlambda.
lambda
values used
lambda
lambda
is fitted via the QICD algorithm. The QICD can substantially improves the computation speed in the p>>n setting. It combines the idea of the MM algorithm with that of the coordinate descent algorithm. For penalized quantile regression model, the objective function is
$$Q(\beta) = 1/n\sum_{i=1}^n\rho_{\tau}(Y_i-x_i^T\beta) +\sum_{j=1}^p p_{\lambda}(|\beta_j|)$$
where \(\rho_{\tau}\) is the checkloss function for quantile regression.
More specifically, we first replace the non-convex penalty function by its majorization function to create a surrogate objective function. Then we minimize the surrogate objective function with respect to a single parameter at each time and cycle through all parameters until convergence. For each univariate minimization problem, we only need
to compute a one-dimensional weighted median, which ensures fast computation.QICD.cv
, QICD.BIC
x=matrix(rnorm(10000),50)
n=dim(x)[1]
p=dim(x)[2]
intercept=1
y=x[,1]+x[,7]+x[,9]+0.1*rnorm(n)
beta1=rep(0,p+intercept)
tau=0.5
a=2.7
res=QICD(y,x,beta1,tau,lambda=10,a,"scad",intercept=intercept)
Run the code above in your browser using DataLab