Utilisation de LASSO pour la sélection de variables, puis utilisation de Logit


10

Je sais que cela brouillerait l'inférence statistique, mais je ne souhaite vraiment que me rapprocher le plus possible d'un modèle précis.

J'ai une variable de résultat dichotomique, avec un large éventail de prédicteurs dichotomiques. Je pense que j'aimerais essayer d'utiliser LASSO pour sélectionner les variables à inclure dans mon modèle, puis entrer ces variables sélectionnées dans une régression Logit.

Y a-t-il quelque chose que je néglige en ce qui concerne l'aspect pratique de cette approche?


4
Vous ignorez que vous pouvez utiliser la pénalité de la norme L1 de LASSO dans la régression logistique tout comme dans la régression linéaire.
Scortchi - Réintégrer Monica

1
Et que LASSO rétrécit ainsi que la sélection, que vous annuleriez.
Scortchi - Réintégrer Monica

C'est donc ce que je pensais (vis-à-vis) rétrécir). J'utilise le package LARS dans STATA. Le modèle qu'il génère ne donne pas d'interception, il ne peut donc pas rétrécir, non?
EvKohl

L'ordonnée à l'origine dans un modèle logit est fixée par le rapport des positifs aux négatifs.
Sycorax dit Réintégrer Monica le

2
Vous pouvez toujours inclure une colonne de celles-ci dans vos données pour estimer le terme d'interception. Mais en effet, il n'est pas nécessaire d'exécuter des modèles séparés. Utilisez simplement la régression logistique avec pénalité L1.
Sven

Réponses:


9

Il existe un package en R appelé glmnet qui peut s'adapter à un modèle logistique LASSO pour vous! Ce sera plus simple que l'approche que vous envisagez. Plus précisément, glmnet est un hybride entre LASSO et la régression Ridge, mais vous pouvez définir un paramètreα=1faire un pur modèle LASSO. Puisque vous êtes intéressé par la régression logistique, vous définissez family = "binomial".

Vous pouvez en savoir plus ici: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html#intro


(+1) Il y a sans aucun doute un package Stata pour cela aussi - Statalist serait le meilleur endroit pour demander.
Scortchi - Réintégrer Monica

Merci. En fait, je ne pense pas qu'il existe un package STATA pour cela. Toute la mention que j'ai trouvée était pour R.
EvKohl

3
Googler pour stata lasso logisticme donne homepages.ucl.ac.uk/~ucakgam/stata.html comme premier résultat.
Scortchi - Réintégrer Monica

Est-ce que quelqu'un connaît un paquet en Python qui peut le faire aussi?
rbm

@rbm Je suis certainement en retard pour la fête, mais vous pouvez appliquer la régularisation aux régresseurs logistiques dans scikit-learn.
Eli Korvigo

2

Premièrement, rien ne garantit qu'un modèle de probabilité linéaire se rapprochera très bien d'un modèle logit; par conséquent, le sous-ensemble de variables sélectionné pour l'une peut être moins approprié pour l'autre.

Deuxièmement, le réajustement n'applique aucun rétrécissement du tout, malgré la sélection variable qui a eu lieu à la première étape; risquer de graves erreurs de calibrage et peut-être une petite perte de discrimination.

Vous pouvez peut-être valider la procédure sur un ensemble de données particulier, mais cela ne semble pas sûr en général, ou offrir un avantage par rapport à une régression logistique par étapes. Et bien sûr, c'est inutile; LASSOL1- une pénalité normale peut être utilisée pour le retrait et la sélection dans la régression logistique.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.