Стандартні помилки для прогнозування ласо за допомогою R


60

Я намагаюся використовувати модель LASSO для прогнозування, і мені потрібно оцінити стандартні помилки. Напевно, хтось уже написав пакет для цього. Але наскільки я бачу, жоден з пакетів CRAN, які роблять прогнози за допомогою LASSO, не поверне стандартні помилки для цих прогнозів.

Отже, моє питання: Чи є пакет або якийсь код R для обчислення стандартних помилок для прогнозування LASSO?


3
Щоб уточнити основний характер цього питання (оскільки він підстрибує вперед-назад b / t CV & SO), мені цікаво, чи можемо ми відредагувати назву, Роб. Як щодо "Чому, здається, не існує пакету стандартних помилок LASSO, чи їх важко обчислити?", Або щось подібне, можливо, поєднано з невеликими правками до тіла, щоб зробити його послідовним. Я думаю, що це дозволить зробити це більш чітко на темі резюме, щоб ця неоднозначність не виникала, і нам не доведеться повертатися назад і назад.
gung - Відновіть Моніку

3
Я міг би поставити питання більше про статистичну методологію, але це було насправді не тим, що я хотів знати. У CV має бути місце для запитань щодо того, яке програмне забезпечення реалізує заданий метод. Подальше обговорення на meta.stats.stackexchange.com/q/2007/159
Роб Хайндман

1
Це можна легко зробити в байєсівських рамках, використовуючи пакет monomvn, дивіться мою відповідь нижче.
фабі

Відповіді:


46

Кюнг та ін. (2010), "Пеніалізована регресія, стандартні помилки та баєсові ласоси", Байєсівський аналіз, 5 , 2 , дозволяють припустити, що щодо статистично обґрунтованого методу обчислення стандартних помилок для прогнозування ласо не може бути консенсусу. Тибширані, схоже, згоден (слайд 43), що стандартні помилки все ще залишаються невирішеною проблемою.


7
Це пояснило б, чому пакети не застосовують стандартних помилок.
Роб Хайндман

20

У відповідній записці, яка може бути корисною, Тібширані та його колеги запропонували тест на значимість для ласо. Документ доступний, і під назвою «Тест значення для ласо». Безкоштовну версію статті можна знайти тут


Посилання без оплати на вказаний
mvherweg

13

Відповідь Сандіпан Кармакар говорить вам, що робити, це повинно допомогти вам на тему "як":

> library(monomvn)
>
> ## following the lars diabetes example
> data(diabetes)
> str(diabetes)
'data.frame':   442 obs. of  3 variables:
 $ x : AsIs [1:442, 1:10] 0.038075.... -0.00188.... 0.085298.... -0.08906.... 0.005383.... ...
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
  .. ..$ : chr  "age" "sex" "bmi" "map" ...

 $ y : num  151 75 141 206 135 97 138 63 110 310 ...

[...]

> ## Bayesian Lasso regression
> reg_blas <- with(diabetes, blasso(x, y))
t=100, m=8
t=200, m=5
t=300, m=8
t=400, m=8
t=500, m=7
t=600, m=8
t=700, m=8
t=800, m=8
t=900, m=5
> 
> ## posterior mean beta (setting those with >50% mass at zero to exactly zero)
> (beta <- colMeans(reg_blas$beta) * (colMeans(reg_blas$beta != 0)  > 0.5))
      b.1       b.2       b.3       b.4       b.5       b.6       b.7       b.8 
   0.0000 -195.9795  532.7136  309.1673 -101.1288    0.0000 -196.4315    0.0000 
      b.9      b.10 
 505.4726    0.0000 
> 
> ## n x nsims matrix of realizations from the posterior predictive:
> post_pred_y <- with(reg_blas, X %*% t(beta))
> 
> ## predictions:
> y_pred <- rowMeans(post_pred_y)
> head(y_pred)
[1]  52.772443 -78.690610  24.234753   9.717777 -23.360369 -45.477199
> 
> ## sd of y:
> sd_y <- apply(post_pred_y, 1, sd)
> head(sd_y)
[1] 6.331673 6.756569 6.031290 5.236101 5.657265 6.150473
> 
> ## 90% credible intervals
> ci_y <- t(apply(post_pred_y, 1, quantile, probs=c(0.05, 0.95)))
> head(ci_y)
             5%       95%
[1,]  42.842535  62.56743
[2,] -88.877760 -68.47159
[3,]  14.933617  33.85679
[4,]   1.297094  18.01523
[5,] -32.709132 -14.13260
[6,] -55.533807 -35.77809

13

Bayesian LASSO - єдина альтернатива проблемі обчислення стандартних помилок. Стандартні помилки автоматично розраховуються в Bayesian LASSO ... Ви можете реалізувати Bayesian LASSO дуже легко, використовуючи схему вибірки Гіббса ...

Байєсівському LASSO потрібні попередні розподіли, щоб присвоїти параметри моделі. У моделі LASSO ми маємо цільову функцію з як параметр регуляризації. Оскільки у нас є для цього потрібен спеціальний тип попереднього розподілу, розподіл LAPLACE - це масштабна суміш звичайного розподілу з експоненціальним розподілом як щільність перемішування. На основі повних умовних плакатів кожного з параметрів слід вивести.||yXβ||22+λ||β||1λ1β

Тоді можна використовувати пробу Гіббса для імітації ланцюга. Див. Park & ​​Cassella (2008), " Байєсський лассо ", JASA , 103 , 482 .

Є три притаманні недоліки частолістського LASSO:

  1. Треба вибирати шляхом перехресної перевірки чи іншими способами.λ

  2. Стандартні помилки важко обчислити, оскільки LARS та інші алгоритми дають оцінку точок для .β

  3. Ієрархічну структуру розглянутої проблеми не можна кодувати за допомогою частотистської моделі, що досить легко в байєсівських рамках.


11

Щоб додати відповіді вище, проблема виглядає як те, що навіть завантажувальна програма, ймовірно, недостатня, оскільки оцінка з пенізованої моделі є упередженою, а завантажувальна розмова буде говорити лише про відхилення - ігноруючи упередженість оцінки. Це добре підсумовано у віньєтці для пені на упаковці на сторінці 18 .

Якщо він використовується для прогнозування, чому потрібна стандартна помилка в моделі? Чи не можете ви перекреслити валідацію чи завантажувальну програму належним чином та створити стандартну помилку навколо показника, пов’язаного з прогнозуванням, таким як MSE?


3
Запуск завантажувальних даних може як оцінювати, так і коригувати зміщення, хоча вибірки повинні бути досить великими.
Glen_b

3

У R є https://cran.r-project.org/web/packages/selectiveInference/index.html , який пропонує довірчі інтервали та p значення для ваших коефіцієнтів, встановлених LASSO, на основі наступного документа :

Стівен Рейд, Джером Фрідман та Роб Тібширані (2014). Дослідження оцінки дисперсії помилок при регресії ласо. arXiv: 1311.5274

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

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