Я хочу зробити наступне:
1) регресія OLS (без терміну пеналізації) для отримання бета-коефіцієнтів ; позначає змінні, які використовуються для регресування. Я роблю це мимо
lm.model = lm(y~ 0 + x)
betas = coefficients(lm.model)
2) Регресія Лассо зі строком пеналізації критеріями відбору є Байєсові інформаційні критерії (BIC), задані
де означає число змінної / регресора, - кількість спостережень, а для початкових бета, отриманих на кроці 1). Я хочу мати результати регресії для цього конкретного значення , яке відрізняється для кожного використовуваного регресора. Отже, якщо є три змінні, будуть три різні значення .
Проблему оптимізації OLS-Lasso потім задає
Як я можу це зробити в 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 витягує коефіцієнти з пристосувань, які належать до "оптимального" обраного у рядку.λλalpha=1
Тепер у мене є бета-коефіцієнти для регресорів, які зображують оптимальне рішення задачі мінімізації
зі штрафним коефіцієнтом . Оптимальний набір коефіцієнтів - це, швидше за все, підмножина регресорів, які я спочатку використовував, це наслідок методу Лассо, який зменшує кількість використаних регресорів.
Чи правильне моє розуміння та код?
$\alpha$
стає . Будь ласка, зробіть це, оскільки це зробить людей легшими зрозуміти ваше запитання, а тому відповісти на нього.