2014-10-21 4 views
0

Я использую редкую группу lasso, которая представляет собой штрафную регрессию. Я использую пакет SGL. Я попытался запустить примеры в моем R, и код приведен нижеКоэффициенты извлечения из оштрафованной регрессии

set.seed(1) 
n = 50; p = 100; size.groups = 10 
index <- ceiling(1:p/size.groups) 
X = matrix(rnorm(n * p), ncol = p, nrow = n) 
beta = (-2:2) 
y = X[,1:5] %*% beta + 0.1*rnorm(n) 
data = list(x = X, y = y) 
cvFit = cvSGL(data, index, type = "linear") 

Я попытался извлечь коэффициент регрессии cvFit, но оказывается

coef(cvFit) 
NULL 

Может кто-нибудь сказать меня что не так? Заранее спасибо.

+1

См. 'Str (cfFit)' и определить точное местоположение коэффициентов. –

+0

@ Роман Луштрик, что вы понимаете, определяя точное местоположение коэффициентов? – Xst67

+0

Не знакомы с этой функцией, но, набрав 'cvFit', вы можете увидеть, какие значения могут быть извлечены. т.е. 'cvFit $ fit $ beta' или' cvFit $ lambdas' – user20650

ответ

0

Это извлекает коэффициенты из модели с минимальным значением лямбда.

coef(fit,s=cvfit$lambda.min) 
Смежные вопросы