Страдает ли LASSO от тех же проблем, что и ступенчатая регрессия?

18

Пошаговые алгоритмические методы выбора переменных имеют тенденцию выбирать для моделей, которые смещают более или менее каждую оценку в регрессионных моделях ( β s и их SE, p-значения , F- статистику и т. Д.), И примерно с такой же вероятностью исключают истинные предикторы, как включают ложные предикторы согласно достаточно зрелой литературе по моделированию.

LASSO страдает такими же конкретными способами, когда используется для выбора переменных?

Alexis
источник
3
Я думаю, что это так. Я думаю, что у Фрэнка Харрелла есть некоторые посты на эту тему, и в его книге «Стратегии регрессионного моделирования» могут быть соответствующие материалы.
Ричард Харди
2
@RichardHardy +1 Я был бы рад, если бы ФранкХаррелл зашёл и прокомментировал или ответил. :)
Алексис
5
У меня новый разговор, посвященный этому. Итог: у лассо низкая вероятность выбора «правильных» переменных. Слайды по
Фрэнк Харрелл,
4
По теме «Итог: у лассо низкая вероятность выбора« правильных »переменных»: есть раздел на ту же тему в разделе «Статистическое обучение с редкостью» ( web.stanford.edu/~hastie/StatLearnSparsity_files/… ),11.4.1 Variable-Selection Consistency for the Lasso
Адриан
2
Также относится к «Итогу: у лассо низкая вероятность выбора« правильных »переменных»: см. Statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf тематические исследования 1 и 2
Адриан

Ответы:

3

Вероятностная интерпретация частых выражений вероятности, p-значений и так далее для модели LASSO и ступенчатой ​​регрессии не верна.

Эти выражения переоценивают вероятность. Например, 95-процентный доверительный интервал для некоторого параметра должен означать, что у вас есть 95-процентная вероятность того, что метод приведет к интервалу с истинной переменной модели внутри этого интервала.

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


  1. Не имеет смысла оценивать правильность параметров модели (особенно когда есть вероятность, что модель не верна).

    (XTX)1

    X

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

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0

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

    Фитинг LASSO

    пример лассо / glmnet

    Пошаговая установка

    Для сравнения, та же самая кривая может быть снабжена пошаговым алгоритмом, приводящим к изображению ниже. (с аналогичными проблемами, что коэффициенты близки, но не совпадают)

    пример ннлс

  2. Даже если вы учитываете точность кривой (а не параметры, которые в предыдущем пункте ясно показали, что это не имеет смысла), вам придется иметь дело с переоснащением. Когда вы выполняете процедуру подбора с LASSO, вы используете данные обучения (для подбора моделей с различными параметрами) и данные тестирования / проверки (для настройки / поиска, который является лучшим параметром), но вы также должны использовать третий отдельный набор данных испытаний / проверки, чтобы узнать производительность данных.

    Р-значение или что-то симулированное не сработает, потому что вы работаете над настроенной моделью, которая выбирает вишню и отличается (гораздо большие степени свободы) от обычного метода линейной аппроксимации.


страдают от тех же проблем, ступенчатая регрессия делает?

R2

Я думал, что основная причина использования LASSO вместо ступенчатой ​​регрессии заключается в том, что LASSO позволяет выбирать менее жадные параметры, на которые меньше влияет мультиколлинеарность. (больше различий между LASSO и пошаговым: превосходство LASSO над прямым выбором / обратным устранением с точки зрения ошибки предсказания перекрестной проверки модели )


Код для примера изображения

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)
Секст Эмпирик
источник
+1 Спасибо Марджин Wterings. Вы можете немного усилить график? Что изображено на осях, какого цвета и т. Д.?
Алексис
На самом деле, график не случай LASSO. Тем не менее, это пример того, как модель может представлять собой некоторую сумму нескольких компонентов, скажем, гауссовых кривых (где кривые с немного отличным средним очень сильно коррелированы), а сдвиг среднего этих компонентов означает большое изменение коэффициента но не так сильно для кривой.
Секст Эмпирик
1
Столбцы представляют собой значения коэффициентов для истинной и подогнанной модели. Это образ, для которого я помню этот принцип. Я сам приведу пример, который может показать это более четко (я подозреваю, что LASSO, будучи менее жадным, мог бы работать несколько лучше в представлении истинных коэффициентов).
Секст Эмпирик
0

У меня новый разговор, посвященный этому. Итог: у лассо низкая вероятность выбора «правильных» переменных. Слайды находятся по адресу http://fharrell.com/talk/stratos19

- Фрэнк Харрелл

По теме «Итог: у лассо низкая вероятность выбора« правильных »переменных»: есть раздел на ту же тему в разделе «Статистическое обучение с редкостью» ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1). 4.16.pdf ), 11.4.1 Variable-Selection Consistency for the Lasso

- Адриан

Также относится к «Итогу: у лассо низкая вероятность выбора« правильных »переменных»: см. Https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf тематические исследования 1 и 2

- Адриан

mkt - восстановить монику
источник
1
Я скопировал эти комментарии как ответ сообщества вики, потому что они более или менее являются ответами на этот вопрос. У нас есть существенный разрыв между ответами и вопросами. По крайней мере, часть проблемы заключается в том, что на некоторые вопросы отвечают в комментариях: если бы ответы, которые отвечали на вопрос, были ответами, у нас было бы меньше вопросов без ответа.
mkt - Восстановить Монику
1
Это комментарии, которые даже в совокупности не дают ответа по стандартам CV (например, ссылки не являются ответами). Кроме того: я категорически не согласен с тем, чтобы превратить совершенно правильный вопрос в вики сообщества из-за вашей собственной неудовлетворенности тем, как часто отвечают на вопросы.
Алексис
1
Кроме того: я был осведомлен о вики сообщества и об ответах вики сообщества, и я отказываюсь от своего несогласия там (хотя я все еще не думаю, что это ответ :).
Алексис
1
@Alexis Достаточно справедливо - я думал, что это была серая область, но, возможно, ошибся в этом.
mkt - Восстановить Монику
1
Мы все учимся. :)
Алексис