Essa já é uma pergunta bastante antiga, mas acho que, enquanto isso, a maioria das respostas aqui está desatualizada (e a que está marcada como resposta correta está claramente errada).
Primeiro, em termos de obter um bom desempenho de previsão, não é universalmente verdade que o LASSO seja sempre melhor que o passo a passo. O artigo "Comparações estendidas da melhor seleção de subconjuntos, seleção passo a passo para a frente e o laço" de Hastie et al (2017) fornece uma comparação extensiva do LASSO para a frente, e algumas variantes do LASSO, como o relaxado LASSO e o melhor subconjunto, e eles mostre que passo a passo às vezes é melhor que o LASSO. Porém, uma variante do LASSO - LASSO relaxado - foi a que produziu a maior precisão de previsão do modelo sob a mais ampla gama de circunstâncias. A conclusão sobre qual é o melhor depende muito do que você considera melhor, por exemplo, se essa seria a maior precisão de previsão ou a seleção do menor número possível de variáveis positivas positivas.
Existe um zoológico inteiro de métodos de aprendizado esparsos, a maioria dos quais é melhor que o LASSO. Por exemplo, existe a regressão penalizada relaxada de LASSO , adaptável de LASSO e SCAD e MCP de Meinhausen , conforme implementada no ncvregpacote, que todos têm menos viés que o LASSO padrão e, portanto, são preferíveis. Além disso, se você tem interesse na solução mais esparsa absoluta com o melhor desempenho de previsão, a regressão penalizada por L0 (também conhecida como melhor subconjunto, ou seja, com base na penalização do n ° de coeficientes diferentes de zero, em oposição à soma do valor absoluto dos coeficientes no LASSO) é melhor que o LASSO, veja, por exemplo, o l0arapacote que aproxima GLMs penalizados por L0 usando um procedimento de cume adaptativo iterativoe que, diferentemente do LASSO, também funciona muito bem com variáveis altamente colineares, e o L0Learnpacote , que pode ajustar modelos de regressão penalizados L0 usando descida de coordenadas , potencialmente em combinação com uma penalidade L2 para regularizar a colinearidade.
Então, voltando à sua pergunta original: por que não usar o LASSO para seleção de variáveis? :
(1) porque os coeficientes serão altamente tendenciosos, o que é melhorado na regressão penalizada relaxada de LASSO, MCP e SCAD e resolvido completamente na regressão penalizada de L0 (que possui uma propriedade completa do oráculo, ou seja, pode selecionar as variáveis causais e executar novamente coeficientes imparciais, também para p> n casos)
(2) porque tende a produzir muito mais falsos positivos do que a regressão penalizada por L0 (nos meus testes l0araapresenta melhor desempenho, ou seja, crista adaptativa iterativa, seguida por L0Learn)
(3) porque não pode lidar bem com variáveis colineares (essencialmente selecionaria aleatoriamente apenas uma das variáveis colineares) - crista adaptativa iterativa / l0arae as penalidades de L0L2 L0Learnsão muito melhores para lidar com isso.
Obviamente, em geral, você ainda precisará usar a validação cruzada para ajustar seus parâmetros de regularização para obter o desempenho ideal das previsões, mas isso não é um problema. E você pode até fazer inferência dimensional alta em seus parâmetros e calcular intervalos de confiança de 95% em seus coeficientes, se desejar através de bootstrapping não paramétrico (mesmo levando em conta a incerteza na seleção da regularização ideal, se você fizer sua validação cruzada também em cada conjunto de dados de bootstrap) , embora isso se torne bastante lento).
Em termos computacionais, o LASSO não é mais lento do que as abordagens passo a passo, certamente não se alguém usar código altamente otimizado que utiliza inicialização a quente para otimizar sua regularização do LASSO (você pode comparar-se usando o fscomando para avançar passo a passo e lassopara o LASSO no bestsubsetpacote). O fato de que as abordagens passo a passo ainda são populares provavelmente tem a ver com a crença equivocada de muitos de que alguém poderia apenas manter seu modelo final e relatar seus valores de p associados - o que de fato não é uma coisa correta a ser feita, pois isso não acontece. leve em consideração a incerteza introduzida pela sua seleção de modelo, resultando em valores p muito otimistas.
Espero que isto ajude?