Чи страждає LASSO від тих самих проблем поетапна регресія?


18

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

Чи страждає LASSO тими ж специфічними способами, коли використовується для вибору змінних?


3
Я думаю, що так і є. У Франка Харрелла є деякі повідомлення з цього приводу, я думаю, і в його книзі "Стратегії моделювання регресії" можуть бути відповідні матеріали.
Річард Харді

2
@RichardHardy +1 Я був би в захваті, якби ФренкГаррелл замахнувся на коментар чи відповів. :)
Олексій

5
У мене є нова розмова, яка стосується цього. Підсумок: ласо має низьку ймовірність вибору "правильних" змінних. Слайди розміщені на fharrell.com/talk/stratos19
Френк Харрелл

4
Пов'язане з "Підсумком: у lasso є низька ймовірність вибору" правильних "змінних": є розділ на ту саму тему в статистичному навчанні з обмеженістю ( 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-значень etcetera для моделі LASSO та ступінчастої регресії не є правильною.

Ці вирази завищують ймовірність. Наприклад, 95% довірчий інтервал для деякого параметра повинен означати, що ви маєте 95% ймовірність того, що метод призведе до інтервалу з істинною змінною моделі всередині цього інтервалу.

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


  1. Мало сенсу оцінювати правильність параметрів моделі (особливо, якщо є ймовірність, що модель неправильна).

    У наведеному нижче прикладі, поясненому пізніше, модель підходить для багатьох регресорів і «страждає» від мультиколінеарності. Це робить імовірним, що сусідній регресор (який сильно корелює) обраний у моделі замість тієї, яка справді є в моделі. Сильна кореляція обумовлює великі похибки / дисперсії коефіцієнтів (що стосуються матриці ).(XTX)1

    Однак ця велика дисперсія, обумовлена ​​мультиколіонерністю, не спостерігається в діагностиці як p-значення або стандартна похибка коефіцієнтів, оскільки вони засновані на меншій матриці проектування з меншими регресорами. (і немає простого методу для обчислення таких типів статистики для LASSO)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 фітинги

    приклад lasso / glmnet

    Поетапна підгонка

    Як порівняння, та сама крива може бути встановлена ​​ступінчастим алгоритмом, що веде до зображення нижче. (з подібними проблемами, що коефіцієнти близькі, але не відповідають)

    приклад nnls

  2. Навіть якщо ви враховуєте точність кривої (а не параметри, з яких у попередньому пункті було зрозуміло, що це не має сенсу), тоді вам доведеться мати справу з надмірною обробкою. Коли ви робите процедуру підгонки з LASSO, тоді ви використовуєте навчальні дані (для підключення моделей з різними параметрами) та дані тесту / перевірки (щоб налаштувати / знайти, який є найкращим параметром), але ви також повинні використовувати третій окремий набір даних тесту / перевірки, щоб з’ясувати ефективність даних.

    Значення p або щось подібне не працює, тому що ви працюєте за налаштованою моделлю, яка вибирає вишні і відрізняється (набагато більшими ступенями свободи) від звичайного методу лінійної підгонки.


страждаєте від тих же проблем, що поступова регресія робить?

Ви, мабуть, посилаєтесь на такі проблеми, як зміщення у таких значеннях, як , p-значення, F-бали або стандартні помилки. Я вважаю, що 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 Дякую, Мартін Ветрінгс Чи можете ви трохи підсилити графік? Що зображено на осях, який колір зображує тощо?
Олексій

Власне, графік не є випадком LASSO. Однак це приклад того, як модель може бути деякою сумою кількох компонентів, скажімо кривих Гаусса (де криві з дещо іншим середнім значенням дуже корелюються), а зміщення середнього значення цих компонентів означає велику зміну коефіцієнта але не стільки для кривої.
Sextus Empiricus

1
Штрихи - це значення коефіцієнтів для істинної та пристосованої моделі. Це образ, за ​​яким я пам'ятаю, що цей принцип виникає. Я сам зроблю приклад, який може показати це більш чітко (я підозрюю, що LASSO, будучи менш жадібним, може бути дещо кращим у представленні справжніх коефіцієнтів).
Секст Емпірік

0

У мене є нова розмова, яка стосується цього. Підсумок: ласо має низьку ймовірність вибору "правильних" змінних. Слайди розміщені на веб-сайті http://fharrell.com/talk/stratos19

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

Пов’язане з "Підсумковим рядком: у lasso є низька ймовірність вибору" правильних "змінних": в цій статистичній темі в розділі "Статистичне навчання з обмеженістю" є розділ на цю ж тему ( 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

- Адріан


1
Я скопіював ці коментарі як відповідь у вікі спільноти, оскільки вони більш-менш відповідають на це запитання. У нас є різкий розрив між відповідями та питаннями. Принаймні частина проблеми полягає в тому, що на деякі запитання відповідають у коментарях: якби коментарі, які відповідали на це питання, були замість них відповідей, у нас було б менше питань без відповіді.
mkt - Відновіть Моніку

1
Це зауваження і, навіть у сукупності, не дають відповіді за стандартами CV (наприклад, посилання - це не відповіді). Також: Я не погоджуюсь із тим, щоб зробити абсолютно вірне питання у вікі спільноти через ваше власне незадоволення швидкістю відповіді на запитання.
Олексій

1
Також: Мене проінформували про відповіді на вікі спільнот і вікі спільнот, і я відкликаю свою незгоду там (хоча я все ще не думаю, що це відповідь :).
Олексій

1
@ Алексис Досить справедливо - я думав, що це сама сіра зона, але, можливо, це неправильно оцінили.
mkt - Відновіть Моніку

1
Ми всі вчимося. :)
Олексій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.