Une régression logistique est-elle biaisée lorsque la variable de résultat est divisée entre 5% et 95%?

10

Je construis un modèle de propension utilisant la régression logistique pour un client de service public. Ce qui m'inquiète, c'est que sur l'échantillon total, mes «mauvais» comptes ne représentent que 5%, et le reste est bon. Je prédit «mauvais».

  • Le résultat sera-t-il biaisé?
  • Quelle est la «proportion mauvaise à bonne» optimale pour construire un bon modèle?
navaneeth
la source
Je pense que c'est toujours mieux d'avoir 50% des marchandises et 50% des défauts selon la règle d'or. La sortie du modèle ne doit pas être biaisée sur l'échantillon.

Réponses:

7

Je n'étais pas d'accord avec les autres réponses dans les commentaires, il est donc juste que je donne les miennes. Soit la réponse (bons / mauvais comptes) et les covariables.XYX

Pour la régression logistique, le modèle est le suivant:

log(p(Y=1|X=x)p(Y=0|X=x))=α+i=1kxiβi

Pensez à la façon dont les données pourraient être collectées:

  • Vous pouvez sélectionner les observations au hasard dans une "population" hypothétique
  • Vous pouvez sélectionner les données en fonction de et voir quelles valeurs de se produisent.YXY

Ces deux éléments sont d' accord pour le modèle ci - dessus, vous ne modélisation de la distribution de . Celles-ci seraient appelées une étude prospective .Y|X

Alternativement:

  • Vous pouvez sélectionner les observations sur la base de (disons 100 de chaque) et voir la prévalence relative de (c'est-à-dire que vous stratifiez sur ). C'est ce qu'on appelle une étude rétrospective ou cas-témoins .X YYXY

(Vous pouvez également sélectionner les données en fonction de et de certaines variables de : il s'agirait d'une étude cas-témoins stratifiée, et il est beaucoup plus compliqué de travailler avec, donc je ne vais pas y entrer ici).XYX

L'épidémiologie a donné un bon résultat (voir Prentice et Pyke (1979) ) pour une étude cas-témoins, les estimations de la probabilité maximale pour peuvent être trouvées par régression logistique, c'est-à-dire en utilisant le modèle prospectif pour les données rétrospectives.β

Alors, comment est-ce pertinent pour votre problème?

Eh bien, cela signifie que si vous êtes en mesure de collecter plus de données, vous pouvez simplement regarder les mauvais comptes et toujours utiliser la régression logistique pour estimer les (mais vous devrez ajuster le pour tenir compte de la sur- représentation). Supposons que cela coûte 1 $ pour chaque compte supplémentaire, alors cela pourrait être plus rentable que de simplement regarder tous les comptes. αβiα

Mais d'un autre côté, si vous avez déjà TOUTES les données possibles, il n'y a pas de raison de stratifier: vous jeteriez simplement des données (donnant de moins bonnes estimations), et vous vous retrouvez avec le problème d'essayer d'estimer .α

Simon Byrne
la source
Cela n'est vrai que si vous avez suffisamment de données pour représenter adéquatement la classe minoritaire (ce qui est généralement le problème lorsqu'il y a un grand déséquilibre de classe - le problème est le déséquilibre en soi, mais que vous n'avez pas suffisamment d'échantillons de la minorité classe). Dans ce cas, une pondération différentielle basée sur la validation croisée des classes positives et négatives, un ajustement de l'alpha ou un ajustement multiplicatif (tous équivalents IIRC) serait une bonne idée pour stimuler la classe minoritaire. La stratification des données serait un équivalent bon marché et joyeux.
Dikran Marsupial
@Dikran: Je ne vois pas comment tout cela ne se vérifie pas dans ce cas: vous n'avez pas à représenter la classe minoritaire, vous avez juste besoin de représenter la différence relative par rapport à la majorité. Si vous n'avez pas suffisamment de données pour cela, alors jeter les observations de la majorité ne va pas aider.
Simon Byrne
@Simon, je suis d'accord avec vous que la stratification n'est pas une bonne idée à moins que vous ne vouliez pas ajuster l'alpha, repondérer les motifs ou ajuster la sortie du modèle. Comme je l'ai dit, le problème du déséquilibre des classes n'est pas le déséquilibre en soi, mais le manque de données permettant à la classe minoritaire de définir correctement la «différence relative par rapport à la majorité». Lorsque cela se produit, cela biaise en moyenne la production vers la classe majoritaire, et donc faire quelque chose pour compenser ce biais est utile. La stratification est une façon de le faire, mais pas la meilleure.
Dikran Marsupial
@Simon, BTW merci pour la référence Prentice et Pyke, ça a l'air utile.
Dikran Marsupial
1
@Dikran: Cela pourrait bien être biaisé pour d'autres modèles, mais PAS pour la régression logistique, c'est tout.
Simon Byrne
3

De manière asymptotique, le rapport entre les modèles positifs et négatifs est essentiellement hors de propos. Le problème se pose principalement lorsque vous avez trop peu d'échantillons de la classe minoritaire pour décrire correctement sa distribution statistique. L'agrandissement de l'ensemble de données résout généralement le problème (lorsque cela est possible).

Si cela n'est pas possible, la meilleure chose à faire est de rééchantillonner les données pour obtenir un ensemble de données équilibré, puis d'appliquer un ajustement multiplicatif à la sortie du classificateur pour compenser la différence entre l'ensemble d'entraînement et les fréquences de classe relative opérationnelles. Bien que vous puissiez calculer le facteur d'ajustement optimal (asymptotiquement), en pratique, il est préférable d'ajuster l'ajustement en utilisant la validation croisée (car nous avons affaire à un cas pratique fini plutôt qu'à un cas asymptotique).

Dans ce genre de situation, j'utilise souvent un comité de modèles, où chacun est formé sur tous les modèles minoritaires et un échantillon aléatoire différent des modèles majoritaires de la même taille que les modèles minoritaires. Cela protège contre la malchance dans la sélection d'un seul sous-ensemble des motifs majoritaires.

Dikran Marsupial
la source
2
Mais est-ce pertinent pour la régression logistique? Nous n'avons pas besoin de décrire la distribution statistique de l'une ou l'autre classe, juste les rapports de cotes relatifs (voir mon commentaire à @Henry).
Simon Byrne
Dans un exemple univarié peut-être, mais si vous avez plus d'une variable explicative, vous avez besoin d'informations sur la distribution des motifs pour orienter correctement le "discriminant".
Dikran Marsupial
Ne serait-il pas préférable d'appliquer l'ajustement multiplicatif dans l'espace des cotes logarithmiques avant d'appliquer la fonction logistique?
rm999
IIRC, l'ajustement optimal asymptitiquement consiste à multiplier par le rapport des fréquences de classe des ensembles opérationnels aux entraînements, ceci est basé sur la règle de Bayes, il est donc appliqué aux probabilités plutôt qu'au log-odds ratio. Cependant, comme nous essayons simplement de corriger une insuffisance mathématiquement insoluble dans l'estimation, peu importe la façon dont l'ajustement est effectué, il ne s'agit en réalité que d'un «facteur de fudge».
Dikran Marsupial
@Dikran: Je ne comprends pas ce que vous voulez dire par une orientation correcte du "discriminant". Même dans le cas multivarié, la régression logistique ne fait que calculer les rapports de cotes relatifs.
Simon Byrne
1

En théorie, vous pourrez mieux distinguer si les proportions de «bon» et de «mauvais» sont à peu près de taille similaire. Vous pourrez peut-être vous rapprocher de cet objectif en procédant à un échantillonnage stratifié, en suréchantillonnant les mauvais cas, puis en repondérant pour revenir ultérieurement aux proportions réelles.

Cela comporte certains risques. En particulier, votre modèle est susceptible d'étiqueter les individus comme "potentiellement mauvais" - probablement ceux qui ne paient pas leurs factures de services publics à l'échéance. Il est important que l'impact des erreurs lors de cette opération soit correctement reconnu: en particulier, combien de «bons clients» seront étiquetés «potentiellement mauvais» par le modèle, et vous êtes moins susceptible de vous tromper de repondération si vous n'avez pas déformé votre modèle par échantillonnage stratifié.

Henri
la source
En fait, je ne pense pas que cela soit vrai pour la régression logistique: le paramètre de rapport de cotes (qui effectue la discrimination) est invariant à la stratification sur la variable de réponse. C'est pourquoi il peut être utilisé pour des études cas-témoins.
Simon Byrne
@Simon: Je ne suis pas en désaccord avec votre commentaire sur le rapport de cotes, mais j'ai vu des gens ne pas ramener cela correctement aux conséquences pour la population après un échantillonnage stratifié alors qu'ils l'avaient fait dans d'autres cas. Par exemple, si vous constatez que les personnes pour lesquelles le facteur A est vrai ont deux fois plus de chances d'être "mauvaises" que celles sans facteur A, cela ne devrait pas changer avec l'échantillonnage stratifié, mais si vous voulez savoir quelle proportion de la population sera inutilement affecté si vous ciblez ceux qui ont le facteur A, vous devez alors pondérer soigneusement les informations de vos échantillons.
Henry
désolé, ce n'était pas le point avec lequel j'étais en désaccord. C'était le premier morceau: une conséquence de l'invariance est qu'une fois que vous avez les données, il n'y a aucun intérêt à stratifier, vous jetez simplement des données. (L'histoire est différente en ce qui concerne le coût de la collecte de données, d'où l'existence d'études cas-témoins).
Simon Byrne
@Simon: Quand vous dites «étude cas-témoins», voulez-vous dire que vous envisagez à l'origine de prélever un échantillon de «mauvais» cas et un échantillon de «bons» cas? Avec une proportion plus élevée de «mauvais» cas que la faible proportion de la population? Si c'est le cas, c'est ce que j'entendais par «échantillonnage stratifié, suréchantillonnage des mauvais cas» dans ma réponse.
Henry
Oui, c'est précisément ce que je voulais dire également. La question semble indiquer qu’ils disposent déjà de données, il n’y aurait donc aucun intérêt à les stratifier.
Simon Byrne
0

Il existe de nombreuses façons de penser aux régressions logistiques. Ma façon préférée est de penser que votre variable de réponse, , suit une distribution de Bernoulli avec une probabilité . Un , à son tour, est fonction de certains prédicteurs. Plus formellement:p i p iyipipi

p i = logit - 1 ( a + b 1 x 1 + . . . + b n x n ) logit - 1 = exp ( X )

yiBernoulli(pi)
pi=logit1(a+b1x1+...+bnxn)
logit1=exp(X)1+exp(x)

Maintenant, est-ce important que vous ayez une faible proportion d'échecs (mauvais comptes)? Pas vraiment, tant que vos données d'échantillonnage sont équilibrées, comme certaines personnes l'ont déjà souligné. Cependant, si vos données ne sont pas équilibrées, obtenir plus de données peut être presque inutile s'il y a des effets de sélection dont vous ne tenez pas compte. Dans ce cas, vous devez utiliser la correspondance, mais le manque d'équilibre peut rendre la correspondance assez inutile. Une autre stratégie consiste à essayer de trouver une expérience naturelle, vous pouvez donc utiliser une conception de variable instrumentale ou de régression de la discontinuité.

Enfin et surtout, si vous avez un échantillon équilibré ou s'il n'y a pas de biais de sélection, vous pouvez être inquiet du fait que le mauvais compte est rare. Je ne pense pas que 5% soit rare, mais juste au cas où, jetez un œil au document de Gary King sur la gestion d'une logistique d'événements rares. Dans le package Zelig, en R, vous pouvez exécuter une logistique événementielle rare.

Manoel Galdino
la source
0

Bon alors je travaille dans la détection des fraudes donc ce genre de problème n'est pas nouveau pour moi. Je pense que la communauté du machine learning a beaucoup à dire sur les données déséquilibrées (comme dans les classes sont déséquilibrées). Il y a donc deux ou trois stratégies faciles à mettre en œuvre qui, je pense, ont déjà été mentionnées, et deux ou trois idées intéressantes, et quelque part là-bas. Je ne vais même pas prétendre savoir ce que cela signifie pour les asymptotiques de votre problème, mais cela semble toujours me donner des résultats raisonnables en régression logistique. Il y a peut-être un papier quelque part, pas sûr cependant.

Voici vos options telles que je les vois:

  1. Suréchantillonner la classe minoritaire. Cela revient à échantillonner la classe minoritaire avec remplacement jusqu'à ce que vous ayez le même nombre d'observations que la classe majoritaire. Il existe des façons sophistiquées de le faire pour que vous fassiez des choses comme le tremblement des valeurs d'observation, de sorte que vous ayez des valeurs proches de l'original mais que vous ne soyez pas des copies parfaites, etc.
  2. Sous-échantillon, c'est là que vous prenez un sous-échantillon de la classe majoritaire. Encore une fois, imaginez des façons de le faire afin de supprimer les échantillons majoritaires les plus proches des échantillons minoritaires, en utilisant des algorithmes de voisin le plus proche, etc.
  3. Repessez les classes. Pour la régression logistique, c'est ce que je fais. Essentiellement, vous modifiez la fonction de perte pour pénaliser un cas de minorité mal classé beaucoup plus lourdement qu'une classe majoritaire mal classée. Mais là encore, vous ne faites techniquement pas le maximum de vraisemblance.
  4. Simulez des données. Beaucoup d'idées intéressantes avec lesquelles j'ai joué ici. Vous pouvez utiliser SMOTE pour générer des données, les réseaux adverses génératifs, les encodeurs automatiques utilisant la partie générative, les estimateurs de densité du noyau pour tirer de nouveaux échantillons.

Quoi qu'il en soit, j'ai utilisé toutes ces méthodes, mais je trouve que la plus simple est de simplement pondérer de nouveau le problème de la régression logistique. Une chose que vous pouvez faire pour vérifier votre modèle est de prendre:

-Intercept/beta

Cela devrait être la frontière de décision (50% de probabilité d'être dans l'une ou l'autre classe) sur une variable ceteris paribus donnée . Si cela n'a pas de sens, par exemple, la limite de décision est un nombre négatif sur une variable strictement positive, alors vous avez un biais dans votre régression logistique qui doit être corrigé.

Ryan
la source