Eu tenho um grande conjunto de preditores (mais de 43.000) para prever uma variável dependente que pode assumir 2 valores (0 ou 1). O número de observações é superior a 45.000. A maioria dos preditores são unigramas, bigramas e trigramas de palavras, portanto há um alto grau de colinearidade entre eles. Há muita esparsidade no meu conjunto de dados também. Estou usando a regressão logística do pacote glmnet, que funciona para o tipo de conjunto de dados que tenho. Meu problema é como posso relatar a significância do valor-p dos preditores. Eu recebo o coeficiente beta, mas existe uma maneira de afirmar que os coeficientes beta são estatisticamente significativos?
Aqui está o meu código:
library('glmnet')
data <- read.csv('datafile.csv', header=T)
mat = as.matrix(data)
X = mat[,1:ncol(mat)-1]
y = mat[,ncol(mat)]
fit <- cv.glmnet(X,y, family="binomial")
Outra pergunta é: estou usando a penalidade padrão alfa = 1, laço que causa o problema adicional de que, se dois preditores forem colineares, o laço escolherá um deles aleatoriamente e atribuirá zero peso beta ao outro. Eu também tentei com penalidade de crista (alfa = 0), que atribui coeficientes semelhantes a variáveis altamente correlacionadas, em vez de selecionar uma delas. No entanto, o modelo com penalidade no laço me dá um desvio muito menor do que o modelo com penalidade no cume. Existe alguma outra maneira de relatar os dois preditores altamente colineares?
fonte
Respostas:
Há um novo artigo, Um teste de significância para o laço , incluindo o inventor do LASSO como autor que relata resultados sobre esse problema. Como é uma área de pesquisa relativamente nova, as referências no artigo abrangem muito do que é conhecido até o momento.
Quanto à sua segunda pergunta, você já tentou ? Freqüentemente, existe um valor nessa faixa intermediária que atinge um bom compromisso. Isso é chamado de regularização da Elastic Net . Como você está usando o cv.glmnet, provavelmente desejará validar cruzadamente uma grade de valores .α ∈ ( 0 , 1 ) ( λ , α )
fonte
A inferência pós-seleção é um tópico muito ativo da pesquisa estatística. Na minha opinião, um problema com o método descrito em Um teste de significância para o laço é que pressupostos rigorosos são necessários (reproduzidos aqui ):
A abordagem que eu achei útil - desde que haja dados suficientes disponíveis - é a divisão de dados. A idéia de divisão de dados remonta a pelo menos Moran (1974) e simplesmente implica dividir os dados aleatoriamente em dois conjuntos, fazendo escolhas de modelagem no primeiro conjunto e fazendo inferência no segundo conjunto.
Você menciona que as covariáveis são uni, bi- e tri-gramas, portanto são altamente colineares. Portanto, nesse caso, aplicar o Lasso no primeiro estágio também violaria as suposições - em particular, o item 5 acima. Portanto, para tornar essa abordagem genuinamente útil e teoricamente correta, você precisará fazer algum tipo de triagem pré-Lasso para colinearidade.
fonte
Talvez dê uma olhada no pacote CRAN hdi , que fornece inferência para modelos de alta dimensão e deve fazer o truque ... Os métodos completos são um pouco entediantes de repetir aqui (existem vários, e ainda é uma área bastante ativa de pesquisa), mas estão bem descritas neste artigo: http://projecteuclid.org/euclid.ss/1449670857 (se você publicar publicamente alguns dados de teste ou simular alguns, também posso dar um exemplo concreto)
fonte