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)