Comment interpréter les variables exclues ou incluses dans le modèle du lasso?

9

J'ai obtenu d'autres publications que l'on ne peut pas attribuer `` importance '' ou `` signification '' aux variables prédictives qui entrent dans un modèle de lasso parce que le calcul des valeurs p ou des écarts-types de ces variables est toujours un travail en cours.

Sous ce raisonnement, est-il exact d'affirmer que l'on NE PEUT PAS dire que les variables qui ont été EXCLUES du modèle du lasso sont «non pertinentes» ou «insignifiantes»?

Dans l'affirmative, que puis-je réellement affirmer sur les variables qui sont soit exclues soit incluses dans un modèle de lasso? Dans mon cas spécifique, j'ai sélectionné le paramètre de réglage lambda en répétant la validation croisée 10 fois 100 fois afin de réduire la randonmess et de faire la moyenne des courbes d'erreur.

UPDATE1: J'ai suivi une suggestion ci-dessous et relancé le lasso en utilisant des échantillons de bootstrap. Je l'ai essayé avec 100 échantillons (ce montant était ce que mon ordinateur pouvait gérer du jour au lendemain) et certains modèles ont émergé. 2 de mes 41 variables sont entrées dans le modèle plus de 95% des fois, 3 variables plus de 90% et 5 variables plus de 85%. Ces 5 variables sont parmi les 9 qui sont entrées dans le modèle lorsque je l'avais exécuté avec l'échantillon d'origine et étaient celles qui présentaient alors les coefficients les plus élevés. Si je lance le lasso avec, disons, 1000 échantillons de bootstrap et que ces modèles sont conservés, quelle serait la meilleure façon de présenter mes résultats?

  • Est-ce que 1000 échantillons de bootstrap sonnent suffisamment? (Ma taille d'échantillon est de 116)

  • Dois-je énumérer toutes les variables et à quelle fréquence elles entrent dans le modèle, puis faire valoir que celles qui entrent plus fréquemment sont plus susceptibles d'être significatives?

  • Est-ce que je peux aller aussi loin avec mes réclamations? Parce que c'est un travail en cours (voir ci-dessus), je ne peux pas utiliser une valeur de coupure, non?

UPDATE2: Suite à une suggestion ci-dessous, j'ai calculé ce qui suit: en moyenne, 78% des variables du modèle d'origine sont entrées dans les modèles générés pour les 100 échantillons de bootstrap. En revanche, seulement 41% pour l'inverse. Cela est dû en grande partie au fait que les modèles générés pour les échantillons de bootstrap avaient tendance à inclure beaucoup plus de variables (17 en moyenne) que le modèle d'origine (9).

UPDATE3: Si vous pouviez m'aider à interpréter les résultats que j'ai obtenus du bootstrap et de la simulation de Monte Carlo, veuillez jeter un œil à cet autre article.

Perplexe
la source

Réponses:

10

Votre conclusion est correcte. Pensez à deux aspects:

  1. Puissance statistique pour détecter un effet. À moins que la puissance ne soit très élevée, on peut manquer même de grands effets réels.
  2. Fiabilité: avoir une forte probabilité de trouver les bonnes (vraies) caractéristiques.

Il y a au moins 4 considérations majeures:

  1. La méthode est-elle reproductible par vous en utilisant le même ensemble de données?
  2. La méthode est-elle reproductible par d'autres utilisant le même ensemble de données?
  3. Les résultats sont-ils reproductibles à l'aide d'autres ensembles de données?
  4. Le résultat est-il fiable?

Quand on désire faire plus que prédire mais tirer des conclusions sur les caractéristiques qui sont importantes pour prédire le résultat, les points 3. et 4. sont cruciaux.

Vous avez abordé 3. (et à cet effet, 100 bootstrap est suffisant), mais en plus des fractions d'inclusion de fonctionnalités individuelles, nous devons connaître la `` distance '' absolue moyenne entre un jeu de fonctionnalités de bootstrap et le jeu de fonctionnalités sélectionné d'origine. Par exemple, quel est le nombre moyen de fonctionnalités détectées dans l'échantillon entier qui ont été trouvées dans l'échantillon bootstrap? Quel est le nombre moyen de fonctionnalités sélectionnées dans un échantillon de bootstrap qui ont été trouvées dans l'analyse d'origine? Quelle est la proportion de fois où un bootstrap a trouvé une correspondance exacte avec l'ensemble de fonctionnalités d'origine? Quelle est la proportion d'un bootstrap dans une caractéristique qui correspond exactement à l'original? Deux fonctionnalités?

Il ne serait pas approprié de dire que tout seuil devrait être utilisé pour tirer une conclusion globale.

En ce qui concerne la partie 4., rien de tout cela ne traite de la fiabilité du processus, c'est-à-dire de la proximité de l'ensemble de fonctionnalités avec le «vrai» ensemble de fonctionnalités. Pour résoudre ce problème, vous pouvez faire une étude de re-simulation Monte-Carlo où vous prenez le résultat du lasso échantillon d'origine comme la «vérité» et simulez plusieurs centaines de nouveaux vecteurs de réponse en utilisant une structure d'erreur supposée. Pour chaque re-simulation, vous exécutez le lasso sur toute la matrice de prédicteur d'origine et le nouveau vecteur de réponse, et déterminez à quel point l'ensemble de fonctionnalités du lasso sélectionné est proche de la vérité à partir de laquelle vous avez simulé. Conditions de re-simulation sur l'ensemble des prédicteurs candidats et utilise les estimations de coefficient du modèle initialement ajusté (et dans le cas du lasso, l'ensemble des prédicteurs sélectionnés) comme une `` vérité '' pratique à simuler.

Pour simuler de nouvelles réalisations de étant donné la matrice origine et maintenant de vrais coefficients de régression, on peut utiliser la variance résiduelle et supposer la normalité avec un zéro moyen, ou pour être encore plus empirique, enregistrer tous les résidus de l'ajustement d'origine et prendre un échantillon bootstrap d'eux pour ajouter des résidus au prédicteur linéaire connu pour chaque simulation. Ensuite, le processus de modélisation d'origine est exécuté à partir de zéro (y compris la sélection de la pénalité optimale) et un nouveau modèle est développé. Pour chacune des 100 itérations environ, comparez le nouveau modèle au vrai modèle à partir duquel vous simulez.X X βYXXβ

Encore une fois, c'est une bonne vérification de la fiabilité du processus - la capacité de trouver les «vraies» fonctionnalités et d'obtenir de bonnes estimations de .β

Lorsque est binaire, au lieu de traiter des résidus, la re-simulation implique de calculer le prédicteur linéaire partir de l'ajustement d'origine (par exemple, en utilisant le lasso), en prenant la transformation logistique et en générant pour chaque simulation de Monte Carlo un nouveau vecteur pour s'adapter à nouveau. En R on peut dire par exempleX β YOuiXβOui

lp <- predict(...) # assuming suitable predict method available, or fitted()
probs <- plogis(lp)
y <- ifelse(runif(n) <= probs, 1, 0)
Frank Harrell
la source
3
Vous auriez dû le dire dès le départ et j'aurais dû le demander. Vous poussez l'enveloppe bien au-delà de ce que les informations disponibles soutiendront. Pense-y de cette façon. Pour un résultat binaire, afin d'estimer uniquement l'ordonnée à l'origine dans un modèle logistique binaire, vous devez avoir au moins 96 observations. Ensuite, vous avez besoin d'environ 15 événements par prédicteur candidat (sinon pénalisant). La probabilité de validation de votre processus dans un futur ensemble de données est assez faible. Une autre façon de voir les choses est que toute cette discussion est encore plus importante (par rapport à un plus grand ). N
Frank Harrell
1
Je ne parlais pas de bootstrap. Je faisais référence à savoir si vous pouvez apprendre quelque chose de dizaines de variables candidates alors que vous n'avez que 32 événements.
Frank Harrell
3
Oui
1
Faites l'expérience de re-simulation que j'ai suggérée pour vérifier la fiabilité réelle de la méthode dans votre cadre exact.
Frank Harrell
2
Je dois signer cette discussion - la réponse de base à votre question est la programmation R de base et jetez un œil à des simulations simples dans biostat.mc.vanderbilt.edu/rms .
Frank Harrell