Это уже довольно старый вопрос, но я чувствую, что в то же время большинство ответов здесь довольно устарели (и тот, который проверен как правильный ответ, совершенно неверен imho).
Во-первых, с точки зрения получения хороших результатов прогнозирования не всегда верно, что LASSO всегда лучше, чем пошаговый. В статье «Расширенные сравнения выбора наилучшего подмножества, прямого пошагового выбора и лассо» Хасси и др. (2017) приводится подробное сравнение ступенчатого прямого перехода, LASSO и некоторых вариантов LASSO, таких как расслабленный LASSO, а также лучшего подмножества, и они покажите, что ступенчато иногда лучше, чем LASSO. Хотя вариант LASSO - расслабленный LASSO - был тем, который произвел наивысшую точность прогнозирования модели в самом широком диапазоне обстоятельств. Заключение о том, что лучше, во многом зависит от того, что вы считаете лучшим, хотя, например, будет ли это самой высокой точностью прогнозирования или выбора наименьшего количества ложноположительных переменных.
Существует целый зоопарк редких методов обучения, большинство из которых лучше, чем LASSO. Например , есть Meinhausen в расслабилась ЛАССО , адаптивный ЛАССО и SCAD и MCP нарушает регресс как это реализовано в ncvreg
пакете, причем все они имеют меньше уклон , чем стандартный LASSO и так preferrable. Кроме того, если вас интересует абсолютное разреженное решение с наилучшей эффективностью прогнозирования, тогда 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 подходит не медленнее, чем пошаговые подходы, между прочим, конечно, нет, если для оптимизации регуляризации LASSO используется высокооптимизированный код, который использует теплые запуски (вы можете сравнить себя, используя fs
команду для пошагового lasso
перехода вперед и для LASSO в bestsubset
пакете). Тот факт, что поэтапные подходы все еще популярны, вероятно, связан с ошибочным мнением многих о том, что можно просто сохранить свою окончательную модель и сообщить о связанных с ней значениях p, что на самом деле неправильно, поскольку этого не происходит. учитывайте неопределенность, обусловленную выбором вашей модели, что приводит к слишком оптимистическим значениям p.
Надеюсь это поможет?