2017-01-23 14 views
0

Я использую glmnet для обучения модели логистической регрессии, а затем попытаюсь получить коэффициенты с конкретным lambda. Я использовал простой пример здесь:используя lambda.min для экстраполяции коэффициентов от модели, обученной с помощью glmnet

load("BinomialExample.RData") 

fit = glmnet(x, y, family = "binomial") 
coef(fit, s = c(0.05,0.01)) 

Я проверил значение fit$lambda, однако, я не мог найти конкретные значения 0,05 или 0,01 в fit$lambda. Итак, как мог coef вернуть коэффициенты с lambda не в вектор fit$lambda.

+0

Вопросы о * программировании, отладке или выполнении рутинных операций в статистической вычислительной платформе * здесь [вне темы] (http://stats.stackexchange.com/help/on-topic) здесь. –

+0

Вы не можете. Если вам действительно нужно это сделать, рассмотрите линейную интерполяцию между следующими самыми большими и ближайшими наименьшими значениями лямбда. –

ответ

0

Это объясняется в помощь для coef.glmnet, определенно exact аргумент:

exact

Этот аргумент имеет значение только тогда, когда предсказания сделаны при значениях с (лямбда), отличных от тех, используется при подгонке исходной модели. Если exact=FALSE (по умолчанию), то функция прогнозирования использует линейную интерполяцию для прогнозирования значений s (лямбда), которые не совпадают с теми, которые используются в алгоритме подгонки. Хотя это часто является хорошим приближением, оно иногда может быть немного грубым. С exact=TRUE эти различные значения s объединены (и отсортированы) с object$lambda, и модель обновляется до того, как будут сделаны прогнозы.