Stabilité du modèle face à un grand problème

22

Intro:

J'ai un ensemble de données avec un problème classique "grand p, petit n". Le nombre d'échantillons disponibles n = 150 tandis que le nombre de prédicteurs possibles p = 400. Le résultat est une variable continue.

Je veux trouver les descripteurs les plus "importants", c'est-à-dire ceux qui sont les meilleurs candidats pour expliquer le résultat et aider à construire une théorie.

Après des recherches sur ce sujet, j'ai trouvé que LASSO et Elastic Net sont couramment utilisés pour le grand p, le petit n. Certains de mes prédicteurs sont fortement corrélés et je souhaite conserver leurs regroupements dans l'évaluation de l'importance, j'ai donc opté pour Elastic Net . Je suppose que je peux utiliser des valeurs absolues de coefficients de régression comme mesure d'importance (veuillez me corriger si je me trompe; mon jeu de données est normalisé).

Problème:

Comme mon nombre d'échantillons est petit, comment puis-je obtenir un modèle stable?

Mon approche actuelle consiste à trouver les meilleurs paramètres de réglage (lambda et alpha) dans une recherche de grille sur 90% de l'ensemble de données avec une validation croisée moyenne 10 fois le score MSE. Ensuite, je forme le modèle avec les meilleurs paramètres de réglage sur l'ensemble des 90% de l'ensemble de données. Je suis en mesure d'évaluer mon modèle en utilisant R au carré sur 10% de l'ensemble de données (qui ne représentent que 15 échantillons).

En exécutant à plusieurs reprises cette procédure, j'ai trouvé une grande variance dans les évaluations R au carré. De plus, le nombre de prédicteurs non mis à zéro varie ainsi que leurs coefficients.

Comment obtenir une évaluation plus stable de l'importance des prédicteurs et une évaluation plus stable des performances du modèle final?

Puis-je exécuter à plusieurs reprises ma procédure pour créer un certain nombre de modèles, puis des coefficients de régression moyens? Ou dois-je utiliser le nombre d'occurrences d'un prédicteur dans les modèles comme score d'importance?

Actuellement, j'obtiens environ 40 à 50 prédicteurs non nuls. Dois-je pénaliser davantage le nombre de prédicteurs pour une meilleure stabilité?

dimi
la source
1
Peut-être que la régression régularisée ne suffit tout simplement pas? Avez-vous essayé une approche d'apprentissage automatique?
quelles approches ML adaptées à une variable dépendante continue ou ordinale suggéreriez-vous?
dimi
2
Forêt aléatoire, SVR ... Pour la sélection des fonctionnalités, vous pouvez essayer une méthode tout à fait pertinente (devrait être plus stable) comme ACE ou Boruta.

Réponses:

11

"Les algorithmes clairsemés ne sont pas stables: un théorème sans déjeuner gratuit "

Je suppose que le titre en dit long, comme vous l'avez souligné.

[...] un algorithme clairsemé peut avoir des solutions optimales non uniques, et est donc mal posé

Découvrez le lasso randomisé et l' exposé de Peter Buhlmann .

Mise à jour:

J'ai trouvé ce document plus facile à suivre que le document de Meinshausen et Buhlmann intitulé "Stability Selection".

Dans " Random Lasso ", les auteurs considèrent les deux inconvénients importants du lasso pour les grands problèmes , petits n , c'est-à-direpn

  1. Dans le cas où il existe plusieurs variables corrélées, le lasso n'en sélectionne qu'une ou quelques-unes, conduisant ainsi à l'instabilité dont vous parlez
  2. n

L'idée principale du lasso aléatoire, capable de traiter les deux inconvénients du lasso est la suivante

n

Des échantillons de bootstrap sont dessinés pour simuler plusieurs ensembles de données. Les coefficients finaux sont obtenus en faisant la moyenne des résultats de chaque échantillon bootstrap.

Ce serait formidable si quelqu'un pouvait développer et expliquer cet algorithme plus en détail dans les réponses.

Pardis
la source
1
Bons liens (+1).
jbowman
Merci pour vos remarques. J'ai également envisagé le lasso randomisé, mais conviendrait-il dans le cas de la colinéarité ?
dimi
2
Que se passe-t-il en cas de colinéarité approximative entre les variables explicatives? Dans l'algorithme de recherche directe conventionnel dans l'analyse de régression, nous sommes souvent confrontés à la situation où deux variables x1 et x2 ont un pouvoir explicatif similaire. Si x1 est dans le modèle, il n'est pas nécessaire d'inclure x2; à l'inverse, si x2 est dans le modèle, il n'est pas nécessaire d'inclure x1. Si je comprends bien votre procédure, vous aurez tendance à inclure x1 la moitié du temps et x2 la moitié du temps, conduisant à des probabilités de stabilité d'environ 50% chacune. Si c'est le cas, vous pourriez conclure à tort qu'aucune variable n'est nécessaire.
dimi
J'imagine, je peux également utiliser un filet élastique randomisé dans ce cas.
dimi
J'ai ajouté un autre lien qui, je pense, répond mieux à votre question.
Pardis
6

Mon approche actuelle consiste à trouver les meilleurs paramètres de réglage (lambda et alpha) dans une recherche de grille sur 90% de l'ensemble de données avec une validation croisée moyenne 10 fois le score MSE. Ensuite, je forme le modèle avec les meilleurs paramètres de réglage sur l'ensemble des 90% de l'ensemble de données. Je suis en mesure d'évaluer mon modèle en utilisant R au carré sur 10% de l'ensemble de données (qui ne représentent que 15 échantillons).

Quelle est la stabilité des paramètres de réglage?

Voyez-vous de grandes différences entre la qualité de l'ajustement (par exemple MSE de la validation croisée du paramètre optimal) et les performances de test indépendant de 10%?

Ce serait un symptôme de sur-ajustement:

MSE=F(grjepunerunemeters)MSE=F(grjepunerunemeters)

Puis-je exécuter à plusieurs reprises ma procédure pour créer un certain nombre de modèles, puis des coefficients de régression moyens? Ou dois-je utiliser le nombre d'occurrences d'un prédicteur dans les modèles comme score d'importance?

Il existe plusieurs possibilités pour construire de tels modèles agrégés:

  • les modèles linéaires peuvent être moyennés en faisant la moyenne des coefficients
  • mm

Les termes de recherche seraient "modèles agrégés", "agrégation bootstrap", "ensachage".

Réflexion secondaire: certains types de données ont une colinéarité attendue et interprétable qui peut amener la sélection variable à «sauter» entre des solutions plus ou moins égales.

cbeleites soutient Monica
la source
3

Il n'y a aucun moyen d'en sortir. Comme certains l'ont dit, les modèles sont instables par nature (sinon des statistiques ne seraient pas nécessaires).

Mais l'instabilité elle-même apporte des informations. Alors au lieu d'essayer de m'en débarrasser, j'ai essayé de l'analyser.

Je lance plusieurs fois des simulations de validation croisée, puis j'obtiens les coefficients des meilleurs paramètres sélectionnés dans chaque série et je les assemble.

λα

Ensuite, j'extrais les coefficients de régression pour chaque paire de paramètres et cela me donne une distribution de valeurs pour chaque paramètre. De cette façon, je peux utiliser la valeur moyenne / médiane pour décrire la force du prédicteur et son écart-type / IQR pour décrire sa variabilité, c'est-à-dire sa stabilité.

Un prédicteur très stable signifie que vous pouvez vous attendre à ce que son effet soit similaire également avec de nouvelles données; un prédicteur qui est instable même dans vos données, serait probablement très instable même avec de nouvelles données.

Bakaburg
la source