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 ncvreg
pacote, 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 l0ara
pacote 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 L0Learn
pacote , 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 l0ara
apresenta 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 / l0ara
e as penalidades de L0L2 L0Learn
sã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 fs
comando para avançar passo a passo e lasso
para o LASSO no bestsubset
pacote). 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?