J'ai un grand ensemble de prédicteurs (plus de 43 000) pour prédire une variable dépendante qui peut prendre 2 valeurs (0 ou 1). Le nombre d'observations est supérieur à 45 000. La plupart des prédicteurs sont des unigrammes, des bigrammes et des trigrammes de mots, il y a donc un haut degré de colinéarité entre eux. Il y a aussi beaucoup de clarté dans mon jeu de données. J'utilise la régression logistique du package glmnet, qui fonctionne pour le type de jeu de données que j'ai. Mon problème est de savoir comment signaler la valeur de la valeur p des prédicteurs. J'obtiens le coefficient bêta, mais existe-t-il un moyen de prétendre que les coefficients bêta sont statistiquement significatifs?
Voici mon code:
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")
Une autre question est la suivante: j'utilise l'alpha = 1, pénalité par lasso par défaut, ce qui pose le problème supplémentaire que si deux prédicteurs sont colinéaires, le lasso choisira l'un d'eux au hasard et affectera un poids bêta nul à l'autre. J'ai également essayé avec une pénalité de crête (alpha = 0) qui attribue des coefficients similaires à des variables hautement corrélées plutôt que de sélectionner l'un d'entre eux. Cependant, le modèle avec pénalité au lasso me donne une déviance beaucoup plus faible que celui avec pénalité de crête. Existe-t-il un autre moyen de signaler les deux prédicteurs qui sont très colinéaires?