Я хочу сделать следующее:
1) регрессия OLS (без штрафных санкций) для получения бета-коэффициентов ; обозначает переменные, используемые для регрессии. Я делаю это
lm.model = lm(y~ 0 + x)
betas = coefficients(lm.model)
2) регрессия Лассо с условием штрафования, критериями выбора должны быть Байесовские критерии информации (BIC), определяемые
где обозначает номер переменной / регрессора, - количество наблюдений и - начальные бета-версии, полученные на шаге 1). Я хочу получить результаты регрессии для этого конкретного значения , которое отличается для каждого используемого регрессора. Следовательно, если есть три переменные, будет три разных значения .
Задача оптимизации OLS-Лассо тогда задается
Как я могу сделать это в R с пакетом lars или glmnet? Я не могу найти способ указать лямбда, и я не уверен на 100%, если я получу правильные результаты, если я бегу
lars.model <- lars(x,y,type = "lasso", intercept = FALSE)
predict.lars(lars.model, type="coefficients", mode="lambda")
Я ценю любую помощь здесь.
Обновить:
Я использовал следующий код сейчас:
fits.cv = cv.glmnet(x,y,type="mse",penalty.factor = pnlty)
lmin = as.numeric(fits.cv[9]) #lambda.min
fits = glmnet(x,y, alpha=1, intercept=FALSE, penalty.factor = pnlty)
coef = coef(fits, s = lmin)
В строке 1 я использую перекрестную проверку с указанным штрафным коэффициентом ( ), который отличается для каждого регрессора , В строке 2 выбирается «lambda.min» файла fits.cv, который является лямбда-значением, дающим минимальную среднюю ошибку перекрестной проверки. Строка 3 выполняет лассо ( ) для данных. Я снова использовал штрафной коэффициент . В строке 4 извлекаются коэффициенты из подгонок, которые принадлежат «оптимальному» выбранному в строке 2.λλalpha=1
Теперь у меня есть бета-коэффициенты для регрессоров, которые изображают оптимальное решение задачи минимизации
с штрафным коэффициентом . Оптимальный набор коэффициентов, скорее всего, является подмножеством регрессоров, которые я первоначально использовал, это является следствием метода Лассо, который сокращает количество используемых регрессоров.
Мое понимание и код верны?
$\alpha$
становится . Пожалуйста, сделайте это, так как это облегчит людям понимание вашего вопроса и, следовательно, ответит на него.