Fit Лассо со штрафом SCAD без перехвата - PullRequest
0 голосов
/ 20 июня 2019

Я использую cv.ncvreg fit Lasso с SCAD. Поскольку мне нужно выбрать lambda, используя перекрестную проверку, поэтому я решил использовать функцию cv.ncvreg. Я дал свои r коды ниже.

library(ncvreg)
n = 100
p = 10
beta0 = c(2, 0, 3, 0, 0, 1, 0, 0, 0, 0)
X = matrix(rnorm(n * p, 0,1), ncol = p)
y=vector(mode="numeric",length=n) 
X[,3]=rnorm(n,2,1)
X[,4]=rnorm(n,4,1)
X[,5]=rnorm(n,5,1)
ei_N=rnorm(n,0,1)   # the model errors 
y= X%*%beta0 + ei_N
fit = cv.ncvreg(X, y, penalty = "SCAD", standardize=TRUE)
coef = coef(fit, s = "lambda.min")
coef

Я получаю следующий вывод

(Intercept)          V1          V2          V3          V4          V5          V6          V7 
 0.06907783  1.98544923  0.00000000  3.01165615  0.00000000  0.00000000  1.00447815  0.00000000 
         V8          V9         V10 
 0.00000000  0.00000000  0.00000000

Если вы видите вывод, у установленной модели есть intercept. Как я могу соответствовать lasso со штрафом SCAD без intercept при перекрестной проверке для выбора lambda? Спасибо.

...