在做高维数据分位数回归变量选择,变量数p>样本数n,调用rq.fit.lasso正常,但调用rq.fit.scad时就呈现如下的错误:
Error in rq.fit.fnb(x, y, tau = tau) :
Error info = 455 in stepy: singular design

rq.fit.scad 的系数初始化方法默认值是普通的分位回归 (start = "rq"),p > n 时肯定是设计阵奇异算不了,换个初始化方法 start = "lasso" 应该就可以了。

library("msaenet")
library("quantreg")

dat <- msaenet.sim.gaussian(n = 1000, p = 500, p.train = 0.6)
f <- rq(dat$y.tr ~ dat$x.tr, method = "scad", lambda = 30)
g <- rq(dat$y.tr ~ dat$x.tr, method = "scad", start = "lasso", lambda = 30)

dat <- msaenet.sim.gaussian(n = 1000, p = 500, p.train = 0.4)
f <- rq(dat$y.tr ~ dat$x.tr, method = "scad", lambda = 30)
g <- rq(dat$y.tr ~ dat$x.tr, method = "scad", start = "lasso", lambda = 30)