Це вже досить давнє запитання, але я вважаю, що тим часом більшість відповідей тут є досить застарілими (а той, який перевіряється як правильна відповідь, явно неправильний, імхо).
По-перше, з точки зору отримання хороших показників прогнозування не є загальним чином, що LASSO завжди краще, ніж поетапно. У статті "Розширені порівняння вибору найкращої підмножини", "Попередній покроковий вибір" та "Лассо" (Hastie et al. (2017)) пропонується широке порівняння прямого ступінчастого, LASSO та деяких варіантів LASSO, таких як розслаблений LASSO, а також кращий підмножина, і вони покажіть, що поетапно іноді краще, ніж LASSO. Хоча варіант LASSO - розслаблений LASSO - той, що дав найвищу точність прогнозування моделей за найширшого кола обставин. Висновок про те, що найкраще, багато в чому залежить від того, що ви вважаєте найкращим, наприклад, чи буде це найвища точність прогнозування або вибір найменших помилкових позитивних змінних.
Однак існує цілий зоопарк розріджених методів навчання, більшість з яких кращі за LASSO. Наприклад, є розслаблений LASSO , адаптивний LASSO та SCAD та MCP санкціонований регрес Мейхаузена, як це реалізовано в ncvreg
пакеті, які мають менший ухил, ніж стандартний LASSO, і тому переважніші. Крім того, якщо вас цікавить абсолютний найрідкіший розчин з найкращим показником прогнозування, тоді L0 пенізована регресія (також найкраща підмножина, тобто заснована на пеналізації nr ненульових коефіцієнтів на відміну від суми абсолютного значення коефіцієнтів у LASSO) краще, ніж LASSO, див. наприклад l0ara
пакет, який наближає L0 пенізованих GLM, використовуючи ітеративну процедуру адаптивного гребеня, і який на відміну від LASSO також дуже добре працює з дуже колінеарними змінними, і L0Learn
пакет , який може вмістити L0 пенізовані регресійні моделі, використовуючи координатний спуск , потенційно в поєднанні з покаранням L2 для регуляції колінеарності.
Отже, щоб повернутися до свого первинного питання: чому б не використовувати LASSO для варіативного вибору? :
(1) через те, що коефіцієнти будуть сильно зміщеними, що покращується при розслабленій регресії LASSO, MCP та SCAD і повністю вирішується в пенізованій регресії L0 (яка має повну властивість оракул, тобто вона може вибирати як причинно-наслідкові змінні, так і відновити неупереджені коефіцієнти, також для p> n випадків)
(2) тому, що вона має тенденцію створювати більше помилкових позитивних результатів, ніж L0 пенізована регресія (у моїх тестах l0ara
найкраще тоді, тобто ітеративний адаптивний гребінь, за яким слідує L0Learn
)
(3) тому що він не може добре впоратися з колінеарними змінними (він би по суті просто випадковим чином обрав одну з колінеарних змінних) - ітераційний адаптивний гребінь / l0ara
та покарання L0L2 L0Learn
набагато краще справляються з цим.
Звичайно, загалом вам доведеться використовувати перехресну перевірку для налаштування параметрів регуляризації для отримання оптимальної продуктивності прогнозування, але це не проблема. І ви навіть можете робити високомірні умовиводи щодо своїх параметрів і обчислювати 95% довірчі інтервали на ваших коефіцієнтах, якщо вам подобається за допомогою непараметричного завантаження (навіть з урахуванням невизначеності щодо вибору оптимальної регуляризації, якщо ви робите перехресну перевірку також для кожного завантаженого набору даних , хоча це стає досить повільним).
Обчислювально LASSO не помітно повільніше, ніж поетапно наближається до btw, звичайно, ні, якщо використовується високооптимізований код, який використовує теплі, починає оптимізувати ваше регуляризацію LASSO (ви можете порівнювати себе, використовуючи fs
команду для вперед покроково та lasso
для LASSO в bestsubset
пакеті). Той факт, що ступінчасті підходи все ще популярні, мабуть, має відношення до помилкової віри багатьох, що тоді можна просто зберегти остаточну модель і повідомити про пов'язані з нею значення p - що насправді робити не правильно, оскільки це не так враховуйте невизначеність, введену вашим вибором моделі, в результаті чого занадто оптимістичні значення p.
Сподіваюся, це допомагає?