LASSO com termos de interação - tudo bem se os principais efeitos forem reduzidos a zero?

25

A regressão LASSO reduz os coeficientes para zero, fornecendo, assim, uma seleção de modelo eficaz. Eu acredito que em meus dados existem interações significativas entre covariáveis ​​nominais e contínuas. Não necessariamente, porém, são os 'efeitos principais' do modelo verdadeiro significativos (diferentes de zero). Claro que não sei disso, pois o verdadeiro modelo é desconhecido. Meus objetivos são encontrar o verdadeiro modelo e prever o resultado o mais próximo possível.

Aprendi que a abordagem clássica para a construção de modelos sempre incluiria um efeito principal antes que uma interação fosse incluída. Portanto, não pode haver um modelo sem um efeito principal de duas covariáveis e se houver uma interação das covariáveis no mesmo modelo. A função, consequentemente, seleciona cuidadosamente os termos do modelo (por exemplo, com base na AIC para trás ou para a frente), respeitando esta regra.XZXZstepR

O LASSO parece funcionar de maneira diferente. Como todos os parâmetros são penalizados, pode sem dúvida acontecer que um efeito principal seja reduzido a zero, enquanto a interação do melhor modelo (por exemplo, validado cruzadamente) é diferente de zero. Acho isso particularmente para meus dados ao usar Ro glmnetpacote.

Recebi críticas com base na primeira regra citada acima, ou seja, meu modelo Lasso final validado cruzado não inclui os termos de efeito principal correspondentes de alguma interação diferente de zero. No entanto, esta regra parece um pouco estranha neste contexto. O que se resume é a questão de saber se o parâmetro no modelo verdadeiro é zero. Vamos supor que sim, mas a interação é diferente de zero, então o LASSO identificará isso talvez, encontrando o modelo correto. De fato, parece que as previsões desse modelo serão mais precisas porque o modelo não contém o efeito principal verdadeiro zero, que é efetivamente uma variável de ruído.

Posso refutar as críticas com base nesse argumento ou devo tomar precauções de alguma forma que o LASSO inclua o efeito principal antes do termo da interação?

tomka
fonte
2
Alguém votou negativamente nisso. Eu estaria interessado por quê
Tomka
1
Sua previsão de objetivo, inferência ou outra coisa estão todas juntas?
Andrew M
@AndrewM Eu quero estimar o modelo verdadeiro da melhor maneira possível, interpretar as variáveis ​​que causam as variáveis ​​dependentes e também usar os valores previstos.
Tomka #
2
Para seu primeiro objetivo, observe que a validação cruzada é inconsistente para a seleção do modelo. De fato, foi demonstrado que o modelo que o modelo "verdadeiro" tende a ser um subconjunto do que maximiza nossa estimativa de desempenho preditivo. Para seu segundo objetivo, observe que o laço fornece estimativas fortemente tendenciosas. Portanto, acho que você precisa decidir qual é seu objetivo principal e editar sua pergunta para esclarecer antes que conselhos úteis possam ser oferecidos.
Andrew M
@AndrewM minha pergunta é: o principal efeito deve ser incluído no modelo ao usar o LASSO? Esta pergunta pode ser respondida para ambos os meus objetivos separadamente. Não acho que a questão precise de mais alterações, mas é importante destacar esses objetivos, ver edição no primeiro parágrafo.
Tomka

Respostas:

10

Uma dificuldade em responder a essa pergunta é que é difícil conciliar o LASSO com a idéia de um modelo "verdadeiro" na maioria das aplicações do mundo real, que normalmente tem correlações não desprezíveis entre variáveis ​​preditivas. Nesse caso, como em qualquer técnica de seleção de variáveis, os preditores específicos retornados com coeficientes diferentes de zero pelo LASSO dependerão dos caprichos da amostragem da população subjacente. Você pode verificar isso executando o LASSO em várias amostras de inicialização do mesmo conjunto de dados e comparando os conjuntos de variáveis ​​preditoras retornadas.

Além disso, como o @AndrewM observou em um comentário, o viés das estimativas fornecidas pelo LASSO significa que você não estará prevendo os resultados "o mais próximo possível". Em vez disso, você está prevendo resultados que se baseiam em uma escolha específica da troca inevitável de desvios de polarização.

Portanto, dadas essas dificuldades, espero que você queira saber por si mesmo, não apenas para satisfazer um crítico, as magnitudes dos principais efeitos das variáveis ​​que contribuem para a interação. Existe um pacote disponível no R, glinternet , que parece fazer exatamente o que você precisa (embora eu não tenha experiência com ele):

Grupo-Laço INTERaction-NET. Se encaixa em modelos de interação pareada linear que satisfazem uma hierarquia forte: se um coeficiente de interação for estimado como diferente de zero, seus dois efeitos principais associados também terão coeficientes estimados com exceção de zero. Acomoda variáveis ​​categóricas (fatores) com números arbitrários de níveis, variáveis ​​contínuas e combinações dos mesmos.

Como alternativa, se você não tiver muitos preditores, considere a regressão de crista, que retornará coeficientes para todas as variáveis ​​que podem ser muito menos dependentes dos caprichos de sua amostra de dados específica.

EdM
fonte
9

Estou atrasado para uma festa, mas aqui estão alguns dos meus pensamentos sobre o seu problema.

  1. laço seleciona o que é informativo. Vamos considerar o laço como um método para obter o maior desempenho preditivo com o menor número de recursos. É totalmente bom que, em alguns casos, o laço selecione a interação e não os efeitos principais. Significa apenas que os efeitos principais não são informativos, mas as interações.

  2. Você está apenas relatando o que descobriu. Você usou algum método e ele produziu alguns resultados. Você o relata de maneira transparente que permite a reprodutibilidade. Na minha opinião, seu trabalho está feito. Os resultados são objetivos, você encontrou o que encontrou e não é seu trabalho justificar, por que você não encontrou outra coisa.

  3. Todas as unidades são arbitrárias. Interações são apenas unidades. Vamos dizer que você estuda cores. As cores podem ser incluídas no seu modelo como um comprimento de onda, ou um comprimento de onda logarítmico, ou como 3 variáveis ​​RGB, ou como uma interação de matiz e matiz e assim por diante. Não há representação inerentemente correta ou incorreta das cores. Você escolherá aquele que faz mais sentido para o seu problema. Interações também são apenas unidades que você pode usar arbitrariamente. Área de uma janela, é apenas a interação de sua altura e largura, você deve incluir a altura e a largura de uma janela no seu modelo? Velocidade é apenas interação de massa e velocidade. E velocidade é apenas interação de tempo e distância. Manhours é apenas a interação do tempo e do número de pessoas que trabalham. Matematicamente, a dose do tratamento * idade é a mesma que altura * largura. O ditado "você sempre deve incluir os principais efeitos" é superestimado.

  4. laço não se aproxima do modelo real, não se destina a inferência e as variáveis ​​selecionadas são instáveis. Se você tiver preditores informativos correlacionados, o laço tende a escolher um e empurrar os outros para 0, portanto, seu modelo omitirá uma proporção significativa de variáveis ​​informativas. Além disso, como foi apontado nos comentários, se você encontrar o melhor lambda na validação cruzada, o laço escolherá mais variáveis ​​do que um modelo real. Outra questão é que as seleções do laço são instáveis. Portanto, se você executar o laço novamente em uma amostra diferente de uma população, terminará com um conjunto diferente de variáveis ​​selecionadas. Portanto, não coloque muito peso sobre as variáveis ​​selecionadas. Além disso, os betas são tendenciosos e, portanto, não podem ser usados ​​para um teste de hipótese paramétrica clássico. No entanto, existem maneiras de contornar isso (próximo ponto)

  5. inferência com laço. Laço pode ser usado para fazer uma inferência sobre preditores. A maneira mais simples é inicializá-la e contar quantas vezes cada variável é selecionada, dividir pelo número de reamostragens e você tem seus valores-p. P nesse caso é uma probabilidade de uma variável ser selecionada pelo laço. Você ainda pode ter efeitos significativos de interação e efeitos principais insignificantes, mas isso não é um problema, também pode acontecer com testes de hipóteses normais. Um ótimo tratamento desse tópico está no Hastie et. al. livro gratuito: Statistical Learning With Sparsity, capítulo 6 http://web.stanford.edu/~hastie/StatLearnSparsity/O bootstrap pode ser executado para toda a faixa de valores lambda, o que resultará em um caminho de estabilidade para todas as variáveis. Isso pode ser estendido com uma abordagem de seleção de estabilidade para encontrar um conjunto de variáveis ​​significativas corrigidas para erros familiares. http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9868.2010.00740.x/abstract Existem também alguns outros métodos de inferência com o laço, que podem ser úteis. Laço especialmente adaptável ou laço desparsificado. A revisão com a implementação do R está aqui DOI: 10.1214 / 15-STS527 ou IMO, explicação mais acessível no Livro de Buhlmanm, van de Geer: Estatísticas para Dados de Alta Dimensão http://www.springer.com/la/book/9783642201912

  6. Outras coisas relacionadas ao laço a ter em atenção. Tanto quanto sei cume ou rede elástica tende a superar o laço. Se houver um conhecimento de domínio sobre variáveis, o laço de grupo ou o laço de grupo esparso podem ser usados ​​para forçar o laço a manter ou descartar todo o grupo de preditores em vez de tratá-los individualmente (por exemplo, caminhos genéticos, variável fator codificada por fator). Para dados espaciais ou ordenados, o laço fundido pode ser usado. O laço randomizado, introduzido no documento de seleção de estabilidade mencionado acima, tende a produzir modelos mais esparsos com o mesmo desempenho que um laço padrão.

rep_ho
fonte
1
realmente gostei # 3
user4581
0

Eu tenho um aplicativo em que quero especificamente que um pequeno número de efeitos principais não seja penalizado. Seja Y = X.main beta + X.inter beta.inter + eps

a) fit.Y = OLS (X.main, Y). Seja til.Y = Y - preveja (ajuste.Y, X.main) b) ajuste [, j] = OLS (X.main, X.inter [, j]) para j = 1 ... k. Deixe tilde.X.inter [, j] = X.inter [, j] - preveja (ajuste.j, X.main) c) ajuste = Laço (tilde.X.inter, tilde.y). O coeficiente no efeito principal é igual a fit.Y - coef (fit) * fit [, 1: dim (X.inter) [2]]. O coeficiente no efeito de interação é igual a coef (fit)

Nas etapas aeb, não é necessário fazer a divisão da amostra. Isso funciona para mim!

Vira
fonte