J'aimerais trouver des prédicteurs pour une variable dépendante continue sur un ensemble de 30 variables indépendantes. J'utilise la régression de Lasso telle qu'implémentée dans le paquet glmnet de R. Voici du code factice:
# generate a dummy dataset with 30 predictors (10 useful & 20 useless)
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)
# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
alpha=1
# fit the model
fits <- glmnet( x, y, family="gaussian", alpha=alpha, nlambda=100)
res <- predict(fits, s=l, type="coefficients")
res
Ma question est de savoir comment interpréter le résultat:
Est-il exact de dire que dans la sortie finale, tous les prédicteurs présentant un coefficient différent de zéro sont liés à la variable dépendante?
Serait-ce un rapport suffisant dans le contexte d'une publication de journal? Ou est-il censé fournir des statistiques de test pour la signification des coefficients? (Le contexte est la génétique humaine)
Est-il raisonnable de calculer des valeurs p ou d'autres statistiques de test pour revendiquer une signification? Comment serait-ce possible? Une procédure est-elle implémentée dans R?
Un simple graphe de régression (points de données avec un ajustement linéaire) pour chaque prédicteur serait-il un moyen approprié de visualiser ces données?
Peut-être que quelqu'un peut fournir des exemples simples d'articles publiés montrant l'utilisation de Lasso dans le contexte de données réelles et comment rendre compte de cela dans un journal?
cv
pour l'étape de prédiction?Réponses:
Je crois comprendre que vous ne pouvez pas nécessairement dire grand-chose sur les variables qui sont "importantes" ou qui ont des effets "réels" selon que leurs coefficients sont non nuls ou non. Pour donner un exemple extrême, si vous avez deux prédicteurs parfaitement colinéaires, le lasso choisira l’un d’eux essentiellement au hasard pour obtenir le poids total et l’autre aura un poids nul.
Cet article , qui inclut l'un des auteurs de glmnet, présente quelques analyses basées sur glmnet (voir notamment: l'introduction, les sections 2.3 et 4.3 et les tableaux 4 et 5). En parcourant les pages, on dirait qu'ils n'ont pas calculé la valeur de P directement à partir du modèle glmnet. Ils ont calculé deux types différents de valeurs P en utilisant d'autres méthodes, mais ils ne semblent pas avoir pleinement confiance en l'un ou l'autre.
Je ne suis pas sûr à 100% de ce que vous suggérez en termes de méthodes de traçage, mais je pense que cela semble raisonnable.
J'espère que ça t'as aidé.
la source
Je souhaitais simplement souligner le fait que des travaux récents tentent de développer une statistique de test spécifique au LASSO, qui prend en compte la sélection de fonctionnalités effectuée:
Un test de signification pour le lasso. Richard Lockhart, Jonathan Taylor, Ryan J. Tibshirani et Robert Tibshirani. http://arxiv.org/abs/1301.7161
Cependant, je n'ai pas encore vu cela dans les applications, alors que l'amorçage est utilisé.
la source
En ce qui concerne l'inférence pour les modèles LASSO ou en réseau élastique, consultez les packages CRAN sélectiveInference et hdi , ils le font exactement en tenant compte de l'étape de sélection variable!
la source