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.step
R
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 R
o glmnet
pacote.
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?
Respostas:
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):
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.
fonte
Estou atrasado para uma festa, mas aqui estão alguns dos meus pensamentos sobre o seu problema.
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.
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.
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.
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)
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
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.
fonte
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!
fonte