La régression LASSO réduit les coefficients vers zéro, permettant ainsi une sélection efficace du modèle. Je crois que dans mes données, il existe des interactions significatives entre les covariables nominales et continues. Cependant, les «principaux effets» du vrai modèle ne sont pas nécessairement significatifs (non nuls). Bien sûr, je ne le sais pas car le vrai modèle est inconnu. Mes objectifs sont de trouver le vrai modèle et de prédire le résultat le plus près possible.
J'ai appris que l'approche classique de la construction de modèles inclurait toujours un effet principal avant qu'une interaction ne soit incluse. Il ne peut donc pas y avoir de modèle sans effet principal de deux covariables et s'il y a interaction des covariables dans le même modèle. Par conséquent, la fonction sélectionne soigneusement les termes du modèle (par exemple sur la base d'un AIC en amont ou en aval) respectant cette règle.step
R
LASSO semble fonctionner différemment. Étant donné que tous les paramètres sont pénalisés, il peut sans aucun doute arriver qu'un effet principal soit réduit à zéro alors que l'interaction du meilleur modèle (par exemple, à validation croisée) est non nulle. C'est ce que je trouve en particulier pour mes données lors de l'utilisation R
du glmnet
package de.
J'ai reçu des critiques fondées sur la première règle citée ci-dessus, c'est-à-dire que mon modèle de Lasso croisé final n'inclut pas les termes d'effet principal correspondants d'une certaine interaction non nulle. Cependant, cette règle semble quelque peu étrange dans ce contexte. Cela revient à se demander si le paramètre dans le vrai modèle est zéro. Supposons que ce soit le cas mais que l'interaction est non nulle, alors LASSO l'identifiera peut-être, trouvant ainsi le bon modèle. En fait, il semble que les prédictions de ce modèle seront plus précises car le modèle ne contient pas l'effet principal vrai zéro, qui est en fait une variable de bruit.
Puis-je réfuter la critique fondée sur ce motif ou dois-je prendre des précautions d'une manière ou d'une autre selon lesquelles LASSO inclut le principal effet avant le terme d'interaction?
Réponses:
Une difficulté pour répondre à cette question est qu'il est difficile de concilier LASSO avec l'idée d'un "vrai" modèle dans la plupart des applications du monde réel, qui ont généralement des corrélations non négligeables entre les variables prédictives. Dans ce cas, comme pour toute technique de sélection de variables, les prédicteurs particuliers renvoyés avec des coefficients non nuls par LASSO dépendront des aléas de l'échantillonnage de la population sous-jacente. Vous pouvez vérifier cela en exécutant LASSO sur plusieurs échantillons d'amorçage à partir du même ensemble de données et en comparant les ensembles de variables prédictives qui sont retournées.
De plus, comme @AndrewM l'a noté dans un commentaire, le biais des estimations fournies par LASSO signifie que vous ne prédirez pas les résultats "aussi fidèlement que possible". Vous prédisez plutôt des résultats qui sont basés sur un choix particulier du compromis inévitable biais-variance.
Compte tenu de ces difficultés, j'espère que vous voudrez connaître par vous-même, et pas seulement pour satisfaire un critique, l'ampleur des principaux effets des variables qui contribuent à l'interaction. Il existe un package disponible en R, glinternet , qui semble faire exactement ce dont vous avez besoin (bien que je n'en ai aucune expérience):
Alternativement, si vous n'avez pas trop de prédicteurs, vous pourriez plutôt envisager une régression de crête, qui renverra des coefficients pour toutes les variables qui peuvent être beaucoup moins dépendantes des caprices de votre échantillon de données particulier.
la source
Je suis en retard pour une fête, mais voici quelques-unes de mes réflexions sur votre problème.
lasso sélectionne ce qui est informatif. Considérons le lasso comme une méthode pour obtenir les performances prédictives les plus élevées avec le plus petit nombre de fonctionnalités. Il est tout à fait correct que dans certains cas, le lasso sélectionne l'interaction et non les effets principaux. Cela signifie simplement que les principaux effets ne sont pas informatifs, mais les interactions le sont.
Vous rapportez simplement ce que vous avez découvert. Vous avez utilisé une méthode et cela a produit des résultats. Vous le signalez d'une manière transparente qui permet la reproductibilité. À mon avis, votre travail est terminé. Les résultats sont objectifs, vous avez trouvé ce que vous avez trouvé et ce n'est pas à vous de justifier pourquoi vous n'avez pas trouvé autre chose.
Toutes les unités sont arbitraires. Les interactions ne sont que des unités. Disons que vous étudiez les couleurs. Les couleurs peuvent être incluses dans votre modèle en tant que longueur d'onde, ou longueur d'onde logarithmique, ou en tant que 3 variables RVB, ou en tant qu'interaction d'une teinte et d'une teinte, etc. Il n'y a pas de représentation intrinsèquement correcte ou incorrecte des couleurs. Vous choisirez celui qui convient le mieux à votre problème. Les interactions ne sont également que des unités que vous pouvez utiliser arbitrairement. La zone d'une fenêtre, est juste une interaction de sa hauteur et de sa largeur, devez-vous inclure la hauteur et la largeur d'une fenêtre dans votre modèle? La vitesse est juste une interaction de masse et de vitesse. Et la vitesse n'est qu'une interaction du temps et de la distance. Les heures de travail sont simplement une interaction du temps et du nombre de personnes qui travaillent. Mathématiquement, la dose de traitement * l'âge est identique à la hauteur * la largeur. Le dicton "vous devez toujours inclure les effets principaux" est surfait.
le lasso ne se rapproche pas du modèle réel, il n'est pas destiné à l'inférence et les variables sélectionnées sont instables. Si vous avez des prédicteurs informatifs corrélés, le lasso a tendance à en choisir un et à pousser les autres à 0, par conséquent votre modèle omettra une proportion significative de variables informatives. De plus, comme cela a été souligné dans les commentaires, si vous trouvez le meilleur lambda dans la validation croisée, le lasso choisira plus de variables qu'un modèle réel. Un autre problème est que les sélections du lasso sont instables. Donc, si vous exécutez à nouveau le lasso sur un échantillon différent d'une population, vous vous retrouverez avec un ensemble différent de variables sélectionnées. Par conséquent, ne mettez pas beaucoup de poids sur les variables sélectionnées. De plus, les bêtas sont biaisés et ne peuvent donc pas être utilisés pour un test d'hypothèse paramétrique classique. Cependant, il existe des moyens de le contourner (point suivant)
inférence au lasso. Le lasso peut être utilisé pour faire une inférence sur les prédicteurs. Le moyen le plus simple consiste à l'amorcer et à compter le nombre de fois que chaque variable est sélectionnée, à diviser par le nombre de rééchantillons, et vous avez vos valeurs de p. P dans ce cas est une probabilité qu'une variable soit sélectionnée par lasso. Vous pouvez toujours vous retrouver avec des effets d'interaction importants et des effets principaux insignifiants, mais ce n'est pas un problème, cela peut aussi se produire avec des tests d'hypothèse normaux. Un grand traitement de ce sujet est dans le Hastie et. Al. livre gratuit: Statistical Learning With Sparsity, chapitre 6 http://web.stanford.edu/~hastie/StatLearnSparsity/Le bootstrap peut être effectué pour toute la plage de valeurs lambda, ce qui entraînera un chemin de stabilité pour toutes les variables. Cela peut être étendu avec une approche de sélection de stabilité pour trouver un ensemble de variables significatives corrigées pour l'erreur familiale. http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9868.2010.00740.x/abstract Il existe également d'autres méthodes d'inférence avec le lasso, qui pourraient être utiles. A savoir lasso adaptatif ou lasso désparsifié. La revue avec l'implémentation R est ici DOI: 10.1214 / 15-STS527 ou explication IMO plus accessible dans le livre de Buhlmanm, van de Geer: Statistics for High-Dimensional Data http://www.springer.com/la/book/9783642201912
Autres choses liées au lasso à prendre en compte. Autant que je sache, l'arête ou le filet élastique ont tendance à surpasser le lasso. S'il existe une connaissance du domaine des variables, le lasso de groupe ou le lasso de groupe clairsemé peut être utilisé afin de forcer le lasso à conserver ou à éliminer l'ensemble du groupe de prédicteurs au lieu de les traiter individuellement (par exemple, les chemins génétiques, la variable factorielle codée factice). Pour les données spatiales ou ordonnées, un lasso fusionné peut être utilisé. Le lasso randomisé, introduit dans le document de sélection de la stabilité mentionné ci-dessus, tend à produire des modèles plus clairsemés avec les mêmes performances qu'un lasso standard.
la source
J'ai une application où je veux spécifiquement que le petit nombre d'effets principaux ne soit pas pénalisé. Soit Y = X.main beta + X.inter beta.inter + eps
a) fit.Y = OLS (X.main, Y). Soit tilde.Y = Y - prédire (fit.Y, X.main) b) fit [, j] = OLS (X.main, X.inter [, j]) pour j = 1 ... k. Soit tilde.X.inter [, j] = X.inter [, j] - prédire (fit.j, X.main) c) fit = Lasso (tilde.X.inter, tilde.y). Le coefficient de l'effet principal est égal à fit.Y - coef (fit) * fit [, 1: dim (X.inter) [2]]. Le coefficient sur l'effet d'interaction est égal à coef (fit)
Aux étapes a et b, pas besoin de fractionner l'échantillon. Ça marche pour moi!
la source