Интерпретация переменных трассировок LASSO

15

Я новичок в glmnetпакете, и я все еще не уверен, как интерпретировать результаты. Может ли кто-нибудь помочь мне прочитать следующий сюжет трассировки?

График был получен путем запуска следующего:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

введите описание изображения здесь

Mayou
источник

Ответы:

20

На обоих графиках каждая цветная линия представляет значение, полученное другим коэффициентом в вашей модели. Лямбда - это вес, заданный члену регуляризации (норма L1), поэтому, когда лямбда приближается к нулю, функция потерь в вашей модели приближается к функции потерь OLS. Вот один способ, которым вы могли бы указать функцию потерь LASSO, чтобы сделать это конкретным:

βLassознак равноargmin [рSS(β)+λ*L1-Norm(β)]

Поэтому, когда лямбда очень мала, решение LASSO должно быть очень близко к решению OLS, и все ваши коэффициенты находятся в модели. По мере роста лямбды термин регуляризации оказывает большее влияние, и вы увидите меньше переменных в вашей модели (поскольку все больше и больше коэффициентов будут иметь нулевое значение).

Как я упоминал выше, норма L1 является термином регуляризации для LASSO. Возможно, лучший способ взглянуть на это состоит в том, что ось x - это максимально допустимое значение, которое может принимать норма L1 . Поэтому, когда у вас небольшая норма L1, у вас много регуляризации. Следовательно, нулевая норма L1 дает пустую модель, и по мере увеличения нормы L1 переменные будут «входить» в модель, поскольку их коэффициенты принимают ненулевые значения.

Сюжет слева и график справа в основном показывают одно и то же, только в разных масштабах.

Дэвид Маркс
источник
2
Очень аккуратный ответ, спасибо! Можно ли вывести «лучших предикторов» из приведенных выше графиков, то есть окончательной модели?
мая 13
4
Нет, для этого вам потребуется перекрестная проверка или какая-либо другая процедура проверки; он скажет вам, какое значение нормы L1 (или, что то же самое, какое логарифм (лямбда)) дает модель с лучшей прогностической способностью.
JAW
11
Если вы пытаетесь определить своих самых сильных предикторов, вы можете интерпретировать график как свидетельство того, что переменные, которые входят в модель на ранней стадии, являются наиболее предсказательными, а переменные, которые входят в модель позже, менее важны. Если вы хотите «лучшую модель», обычно это делается путем перекрестной проверки. Здесь был предложен общий способ достижения этого с помощью пакета glmnet : stats.stackexchange.com/a/68350/8451 . Я настоятельно рекомендую вам прочитать короткую главу о Лассо в ESLII (3.4.2 и 3.4.3), которую можно бесплатно скачать: www-stat.stanford.edu/~tibs/ElemStatLearn
Дэвид Маркс
@ Дэвид Маркс, на какие цифры в верхней части сюжета ссылаются? как выбрать лучшую модель через перекрестную проверку.
Джеза
@DavidMarx было какое-то время, но для всех, кто интересуется этим, это число коэффициентов в этом весе, которые не равны нулю.
Ян Белчер