Importance des variables dans la régression logistique


11

Je suis probablement confronté à un problème qui a probablement été résolu une centaine de fois auparavant, mais je ne sais pas où trouver la réponse.

Lorsque j'utilise la régression logistique, étant donné de nombreuses fonctionnalités et que j'essaie de prédire une valeur binaire catégorielle , je suis intéressé par la sélection d'un sous-ensemble des fonctionnalités qui prédit bien .x1,...,xnyy

Existe-t-il une procédure similaire au lasso qui peut être utilisée? (Je n'ai vu que le lasso utilisé pour la régression linéaire.)

L'examen des coefficients du modèle ajusté indique-t-il l'importance des différentes caractéristiques?

Modifier - Clarifications après avoir vu certaines des réponses:

  1. Lorsque je me réfère à l'amplitude des coefficients ajustés, je veux dire ceux qui sont ajustés à des caractéristiques normalisées (moyenne 0 et variance 1). Sinon, comme l'a souligné @probabilityislogic, 1000x semblerait moins important que x.

  2. Je ne souhaite pas simplement trouver le meilleur sous-ensemble k (comme le proposait @Davide), mais plutôt peser l'importance des différentes fonctionnalités les unes par rapport aux autres. Par exemple, une fonctionnalité peut être "âge" et l'autre fonctionnalité "âge> 30". Leur importance supplémentaire peut être faible, mais les deux peuvent être importants.

Réponses:


8

La réponse de DWin offre la réponse mais peu de perspicacité, j'ai donc pensé qu'il pourrait être utile de fournir quelques explications.

Si vous avez deux classes, vous essayez essentiellement d'estimer . C'est tout ce dont vous avez besoin et le modèle de régression logistique suppose que:p=P(yi=1|X=xi)

logp1p=logP(yi=1|X=xi)P(yi=0|X=xi)=β0+β1Txi

Ce que je pense que vous voulez dire par l'importance de la fonction c'est comment elle affecte ou en d'autres termes ce qui est .jppxij

Après une petite transformation, vous pouvez voir que

p=eβ0+β1Txi1+eβ0+β1Txi .

Une fois que vous calculez votre dérivée, vous verrez que

pxij=βjeβ0+β1Txi

Cela dépend clairement de la valeur de toutes les autres variables. Cependant, vous pouvez observer que le SIGN du coefficient peut être interprété comme vous le souhaitez: s'il est négatif, alors cette caractéristique diminue la probabilité p.

Maintenant, dans votre procédure d'estimation, vous essayez d'estimer les supposant que votre modèle est correct. La régularisation introduit un biais dans ces estimations. Pour une régression de crête et des variables indépendantes, vous pouvez obtenir une solution sous forme fermée:β

βr^=β^β^+λ .

Comme vous pouvez le voir, cela peut changer le signe de votre coefficient de sorte que même cette interprétation se brise.


1
faute de frappe dans le dénominateur de eq1?
Fernando

7

La réponse à votre dernière question est un NON catégorique. L'ampleur des coefficients n'est en aucun cas une mesure d'importance. Le lasso peut être utilisé pour la régression logistique. Vous devez étudier la zone de manière plus approfondie. Les méthodes que vous devez étudier sont celles qui impliquent des méthodes "pénalisées". Si vous recherchez des méthodes de détection qui découvrent des prédicteurs "masqués", un terme qui peut être défini quelque part mais qui n'est pas couramment utilisé, vous devez rechercher des méthodes qui inspectent les interactions et la structure non linéaire dans l'espace des prédicteurs et le lien entre les résultats et cet espace. Il y a pas mal de discussions sur ces questions et méthodes dans le texte de Frank Harrell "Stratégies de modélisation de régression".

La stratégie de sélection en amont ne fournira pas de résultats valides (bien qu'elle produise des résultats). Si vous avez examiné un cas de 20 prédicteurs aléatoires pour 100 événements, vous en trouverez probablement 2 ou 3 qui seront sélectionnés avec un processus de sélection en amont. La prévalence de la sélection en amont dans le monde réel ne reflète pas une réflexion statistique minutieuse, mais plutôt sa disponibilité aisée en SAS et SPSS et le manque de sophistication de la base d'utilisateurs de ces produits. La base d'utilisateurs R a plus de mal à accéder à ces méthodes et les utilisateurs qui affichent des demandes sur les listes de diffusion et SO sont généralement informés des problèmes liés aux méthodes de sélection en amont (ou en aval).


1
Je sais que je devrais - j'apprécierais grandement certains conseils pour savoir par où commencer.
Guy Adini

J'ajouterai un exemple pour sauvegarder celui-ci. Supposons que nous définissons . Ensuite, le coefficient estimé (non pénalisé) pour sera fois plus petit que le coefficient estimé (non pénalisé) pour . Mais notez que la force des deux prédicteurs sera exactement la même. x n + 1 1000 x 1xn+1=1000x1xn+11000x1
Probabislogic

Veuillez consulter mes commentaires ci-dessus (en utilisant des fonctionnalités normalisées). Merci.
Guy Adini

Je vous remercie. J'examinerai cela. Pouvez-vous nommer quelques algorithmes courants qui sont utilisés dans cette «inspection des interactions et de la structure non linéaire dans l'espace des prédicteurs», ou s'agit-il d'une situation très au cas par cas?
Guy Adini

Vous pouvez utiliser des splines de régression pour rechercher la non-linéarité et les termes splines peuvent être "croisés", ce qui permet d'identifier les effets qui sont limités à une région d'un espace de prédiction 2D. Vous pouvez également utiliser des méthodes de régression locales. Dans R, la méthode de régression locale la plus utilisée est probablement le package 'mgcv', mais l'ancien package 'locfit' est toujours disponible.
DWin

-4

L'anglais n'est pas ma langue maternelle, donc je n'ai peut-être pas compris quel est votre problème, mais si vous avez besoin de trouver le meilleur modèle, vous pouvez essayer d'utiliser une procédure à rebours (et éventuellement ajouter des interactions), en commençant par un modèle avec toutes les covariables. Vous pouvez ensuite regarder à la fois les valeurs residuelles_vs_prédictives et les graphiques qq-plot pour vérifier si le modèle décrit bien votre phénomène


Merci! Je pense que ce que vous proposez est d'ajouter progressivement la fonctionnalité la plus corrélée. Cela a du sens, mais ne m'aide pas à comprendre "dans quelle mesure" la fonctionnalité A est plus importante que la fonctionnalité B. Par exemple, supposons que j'ai une fonctionnalité x et une autre fonctionnalité x + <petit bruit>. Ensuite, les deux sont en fait des fonctionnalités utiles, mais l'une est masquée par l'autre. Je veux une méthode qui montrerait également que x + <noise> est important.
Guy Adini

Non, une procédure descendante commence par un modèle avec toutes les covariables, puis supprime une covariable (dont le coefficient n'est pas significatif) étape par étape (jusqu'à ce que vous ayez un modèle avec uniquement des coefficients significatifs, généralement). Je suppose qu'il existe des moyens plus sophistiqués pour atteindre le même objectif, mais je ne suis qu'un étudiant en licence!
Davide
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.