Detectando preditores significativos de muitas variáveis ​​independentes

31

Em um conjunto de dados de duas populações não sobrepostas (pacientes e saudáveis, total ), gostaria de encontrar (de variáveis ​​independentes) preditores significativos para uma variável dependente contínua. Correlação entre preditores está presente. Estou interessado em descobrir se algum dos preditores está relacionado à variável dependente "na realidade" (em vez de prever a variável dependente da maneira mais exata possível). Como fiquei impressionado com as inúmeras abordagens possíveis, gostaria de perguntar qual é a abordagem mais recomendada.300n=60300

  • Pelo meu entendimento, a inclusão ou exclusão gradual de preditores não é recomendada

  • Por exemplo, execute uma regressão linear separadamente para cada preditor e corrija os valores de p para comparação múltipla usando FDR (provavelmente muito conservador?)

  • Regressão de componente principal: difícil de interpretar, pois não poderei falar sobre o poder preditivo de preditores individuais, mas apenas sobre os componentes.

  • alguma outra sugestão?

brincadeira
fonte
Já ouvi falar de pessoas que usam regressão regularizada L1 para fazer esse tipo de coisa. Mas eu não sei o suficiente para escrever uma resposta adequada ...
Rei
2
Para fornecer as melhores recomendações, nos ajudaria a saber como você procederá após identificar "preditores significativos". Você está tentando prever o resultado o mais exatamente possível; encontre uma maneira parcimoniosa de prever isso (por exemplo, usando um conjunto de até k preditores que o farão com eficiência; explique o que causa o resultado "na realidade"; ou algo mais? Além disso, qual o tamanho do seu conjunto de dados?
rolando2
@rolando: obrigado pelo comentário! Atualizei a pergunta: meu número total de observações é de n = 60 sujeitos. Meu objetivo não é prever a variável dependente o mais exatamente possível, mas sim para explicar o que faz com que o resultado "na realidade" (= esperam encontrar relationsship entre as variáveis que poderiam ser confirmados em estudos posteriores / conjuntos de dados)
jokel
Também postei uma pergunta de acompanhamento, incluindo alguns dados fictícios. Eu ficaria muito grato por todas as dicas. stats.stackexchange.com/questions/34859/...
jokel

Respostas:

30

Eu recomendaria tentar um glm com a regularização do laço . Isso adiciona uma penalidade ao modelo para o número de variáveis ​​e, à medida que você aumenta a penalidade, o número de variáveis ​​no modelo diminui.

Você deve usar a validação cruzada para selecionar o valor do parâmetro de penalidade. Se você tem R, sugiro usar o pacote glmnet . Use alpha=1para regressão do laço e alpha=0para regressão de crista. Definir um valor entre 0 e 1 usará uma combinação de penalidades de laço e cordilheira, também conhecidas como rede elástica.

Zach
fonte
4
Eu concordo com o Zach. David Cassell e eu escrevemos um artigo sobre isso, concentrando-me no SAS, mas não inteiramente. Está Parando Passo a Passo .
Peter Flom - Restabelece Monica
1
Eu acho que é 0 para cume e 1 para lasso
Rei
1
@ Zach: Obrigado pelas dicas. Existe uma maneira de obter alguma estatística de teste que me permita julgar a importância de preditores únicos. No final, eu gostaria de poder dizer "o preditor X está significativamente relacionado à variável dependente Y".
Jokel
2
Em relação aos ICs, no manual de outro pacote R que implementa o LASSO ( cran.r-project.org/web/packages/penalized/vignettes/… , página 18): "É uma pergunta muito natural solicitar erros padrão de regressão coeficientes ou outras quantidades estimadas. Em princípio, esses erros padrão podem ser facilmente calculados, por exemplo, usando o bootstrap. Ainda assim, este pacote não os fornece deliberadamente. A razão para isso é que os erros padrão não são muito significativos para estimativas fortemente tendenciosas, como de métodos de estimação penalizados ".
miura 19/09/12
2
@miura recentemente introduzido foi uma estatística de teste para apenas isso, pelos autores Lasso originais também: papel e diapositivos (mais fácil de ler)
Cam.Davidson.Pilon
23

Para expandir a resposta de Zach (+1), se você usar o método LASSO em regressão linear, está tentando minimizar a soma de uma função quadrática e uma função de valor absoluto, ou seja:

minβ(YXβ)T(YXβ)+i|βi|

βA função objetivo do LASSO

O mínimo está na curva de interseção, plotada aqui com as curvas de contorno da curva quadrática e quadrada:

Curvas de contorno do LASSO

Você pode ver que o mínimo está em um dos eixos, portanto, essa variável foi eliminada da regressão.

L1

Cam.Davidson.Pilon
fonte
8
(+1) mas para a postagem do blog, o que é realmente bom. Seria bom se você expandisse sua resposta aqui um pouco, pois isso aumentará a probabilidade de as informações permanecerem disponíveis.
# 0
2

Qual é a sua opinião anterior sobre quantos preditores provavelmente serão importantes? É provável que a maioria deles tenha um efeito exatamente zero ou que tudo afete o resultado, algumas variáveis ​​apenas menos que outras?

E como o status de saúde está relacionado à tarefa preditiva?

Se você acredita que apenas algumas variáveis ​​são importantes, tente o spike and slab anterior (no pacote spikeSlabGAM do R, por exemplo) ou L1. Se você acha que todos os preditores afetam o resultado, pode estar sem sorte.

E, em geral, todas as advertências relacionadas à inferência causal a partir de dados observacionais se aplicam.

Scellus
fonte
2

Faça o que fizer, vale a pena obter intervalos de confiança de autoinicialização nas fileiras de importância dos preditores para mostrar que você realmente pode fazer isso com seu conjunto de dados. Eu duvido que qualquer um dos métodos possa encontrar com segurança os preditores "verdadeiros".

Frank Harrell
fonte
1

np

Andy Lu
fonte
Isso é verdade, mais especificamente quando n << p, consulte este papel rede elástica original: stanford.edu/~hastie/Papers/...
Cam.Davidson.Pilon
1
Quando n <p, o LASSO seleciona no máximo n variáveis.
Miura