Régression logistique: maximiser les vrais positifs - les faux positifs

9

J'ai un modèle de régression logistique (ajustement via glmnet en R avec régularisation nette élastique), et je voudrais maximiser la différence entre les vrais positifs et les faux positifs. Pour ce faire, la procédure suivante est venue à l'esprit:

  1. Ajuster le modèle de régression logistique standard
  2. En utilisant un seuil de prédiction égal à 0,5, identifiez toutes les prédictions positives
  3. Attribuer un poids 1 pour les observations à prédiction positive, 0 pour toutes les autres
  4. Ajuster le modèle de régression logistique pondéré

Quels seraient les défauts de cette approche? Quelle serait la bonne façon de résoudre ce problème?

La raison de vouloir maximiser la différence entre le nombre de vrais positifs et de faux négatifs est due à la conception de mon application. Dans le cadre d'un projet de classe, je construis un participant autonome sur un marché en ligne - si mon modèle prédit qu'il peut acheter quelque chose et le vendre plus tard à un prix plus élevé, il fait une offre. Je voudrais m'en tenir à la régression logistique et aux résultats binaires de sortie (gagner, perdre) en fonction des coûts fixes et des augmentations de prix unitaires (je gagne ou perd le même montant à chaque transaction). Un faux positif me fait mal car cela signifie que j'achète quelque chose et que je ne peux pas le vendre à un prix plus élevé. Cependant, un faux négatif ne me fait pas de mal (uniquement en termes de coût d'opportunité) car cela signifie simplement que si je n'ai pas acheté, mais si je l'avais fait, j'aurais gagné de l'argent. De même,

Je suis d'accord que le seuil de 0,5 est complètement arbitraire, et lorsque j'ai optimisé le modèle de l'étape 1 sur le seuil de prédiction qui donne la différence la plus élevée entre les vrais / faux positifs, il se révèle plus proche de 0,4. Je pense que cela est dû à la nature asymétrique de mes données - le rapport entre les négatifs et les positifs est d'environ 1: 3.

En ce moment, je suis les étapes suivantes:

  1. Fractionner les données en formation / test
  2. Adapter le modèle à l'entraînement, faire des prédictions dans l'ensemble de tests et calculer la différence entre les vrais / faux positifs
  3. Ajuster le modèle au maximum, faire des prédictions dans l'ensemble de test et calculer la différence entre les vrais / faux positifs

La différence entre les vrais / faux positifs est plus petite à l'étape # 3 qu'à l'étape # 2, bien que l'ensemble d'apprentissage soit un sous-ensemble de l'ensemble complet. Puisque je me fiche que le modèle du n ° 3 ait plus de vrais négatifs et moins de faux négatifs, puis-je faire quoi que ce soit sans altérer la fonction de vraisemblance elle-même?

tmakino
la source
Avant de vous demander quels seraient les défauts de cette approche, vous devriez peut-être expliquer pourquoi cette approche devrait fonctionner, à votre avis. Pourquoi pensez-vous que les étapes 2 à 4 améliorent le résultat?
user31264
De plus, ai-je raison de dire qu'à la fin, vous supprimez le modèle de l'étape 1 et utilisez uniquement le modèle de l'étape 4?
user31264
Oui, je prévoyais d'utiliser le modèle équipé de l'ensemble des données, mais cela n'a pas de sens de le faire, car il est sous-performant du modèle équipé de l'ensemble de formation.
tmakino
2
Je n'ai pas de source à ce sujet en ce moment ... mais savez-vous que vous pouvez optimiser un modèle de régression logistique pour maximiser la zone sous la courbe (caractéristique de fonctionnement du récepteur) (ou AUC)? Pas besoin de réinventer la roue.
AdamO
2
Ce que je ne comprends pas bien ici, c'est pourquoi vous n'avez rien inclus sur le prix futur prévu dans votre modèle, et vous n'avez pas inclus l'ampleur du profit / de la perte dans l'optimisation. Une décision «d'acheter» qui mène à une perte de 99% est certainement bien pire qu'une décision «d'acheter» qui mène à une perte de 1%, même si les deux sont de faux positifs.
Probabilogic

Réponses:

24

Vous ne semblez pas du tout vouloir une régression logistique. Ce que vous dites, c'est "je voudrais maximiser la différence entre les vrais positifs et les faux positifs". C'est une fonction objective fine, mais ce n'est pas une régression logistique. Voyons voir ce que c'est.

Tout d'abord, une notation. La variable dépendante sera :Y iYi

Yi={1Purchase i was profitable0Purchase i was un-profitable

Les variables indépendantes (les éléments que vous utilisez pour essayer de prédire si vous devez acheter) seront (un vecteur). Le paramètre que vous essayez d'estimer sera (un vecteur). Vous prédirez acheter lorsque . Pour l'observation , vous prédisez acheter lorsque ou lorsque la fonction d'indicateur . β X i β > 0 i X i β > 0 1 X i β > 0 = 1XiβXiβ>0iXiβ>01Xiβ>0=1

Un vrai positif se produit sur l'observation lorsque et . Un faux positif sur l'observation se produit lorsque et . Vous souhaitez trouver la qui maximise les vrais positifs moins les faux positifs, ou: Y i = 1 1 X i β > 0 = 1 i Y i = 0 1 X i β > 0 = 1 β m a x βiYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

Ce n'est pas une fonction objective particulièrement familière pour estimer un modèle de réponse discrète, mais restez avec moi pendant que je fais une petite algèbre sur la fonction objectif:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

OK, remarquez maintenant que les deux derniers termes de cette somme ne sont pas des fonctions de , nous pouvons donc les ignorer dans la maximisation. Enfin, nous venons de montrer que le problème que vous souhaitez résoudre, "maximiser la différence entre les vrais positifs et les faux positifs" est le même que ce problème: β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

Maintenant, cet estimateur a un nom! Il est appelé l'estimateur du score maximum. C'est une manière très intuitive d'estimer le paramètre d'un modèle de réponse discrète. Le paramètre est choisi de manière à maximiser le nombre de prédictions correctes. Le premier terme est le nombre de vrais positifs et le second terme est le nombre de vrais négatifs.

C'est une assez bonne façon d'estimer un modèle de réponse discrète (binaire). L'estimateur est cohérent, par exemple. (Manski, 1985, J of Econometrics) Il y a cependant quelques bizarreries à cet estimateur. Tout d'abord, il n'est pas unique dans les petits échantillons. Une fois que vous avez trouvé un qui résout la maximisation, alors tout autre qui fait exactement les mêmes prédictions dans votre ensemble de données résoudra la maximisation --- donc, infiniment de proches de celui que vous avez trouvé. De plus, l'estimateur n'est pas asymptotiquement normal et il converge plus lentement que les estimateurs de vraisemblance maximale typiques --- racine cubique au lieu de la racineβββNNconvergence. (Kim et Pollard, 1990, Ann of Stat) Enfin, vous ne pouvez pas utiliser le bootstrap pour en faire l'inférence. (Abrevaya & Huang, 2005, Econometrica) Il existe cependant certains articles utilisant cet estimateur --- il y a un plaisir à prédire les résultats du tournoi de basket-ball de la NCAA par Caudill, International Journal of Forecasting, avril 2003, v.19, iss. 2, p. 313-17.

Un estimateur qui surmonte la plupart de ces problèmes est l'estimateur de score maximum lissé de Horowitz (Horowitz, 1992, Econometrica et Horowitz, 2002, J of Econometrics). Il donne un estimateur unique, cohérent à la racine , asymptotiquement normal, qui se prête au bootstrap. Horowitz fournit un exemple de code pour implémenter son estimateur sur sa page Web.N

Facture
la source
Merci d'avoir inclus l'algèbre pour assimiler ma fonction de coût à l'estimateur de score maximum. Avec la fonction d'indicateur donnée pour , cela signifie-t-il que je classerai toujours comme positif et comme négatif? De plus, p (la sortie du modèle) est-il calculé à l'aide de la fonction logistique avec l'entrée ? L'approche actuelle que j'utilise est la fonction de coût AUC, puis l'optimisation du seuil de prédiction pour trouver la valeur avec la différence la plus élevée entre les vrais positifs et les faux positifs. Je comprends que votre réponse trouve explicitement la différence maximaleβTx>0p>0.5p<=0.5βTx
tmakino
(suite) en le définissant dans la fonction de coût (et en fixant le seuil de prédiction à 0,5), sautant ainsi l'étape intermédiaire que j'ai prise. Cependant, l'AUC existe déjà dans le package de régression que j'utilise (glmnet), contrairement à l'esimateur de score maximum. Pensez-vous que mon approche est raisonnable compte tenu de mon objectif?
tmakino
1
Malheureusement, je ne connais pas très bien la méthode AUC, donc je ne peux pas dire à quel point elle est appropriée ici. Dans l'estimateur du score maximum, il n'y a vraiment pas de , car vous ne supposez pas de modèle logistique. Vous décidez simplement de prédire 1 lorsque , puis de trouver la meilleure . X i β > 0 βpXiβ>0β
Bill
15

Il y a plusieurs problèmes avec cette approche, notamment:

  • Recherche d'un seuil pour une probabilité continue
  • Utilisation d'un seuil arbitraire de 0,5
  • En supposant que le coût d'un "faux positif" et d'un "faux négatif" est le même pour tous les sujets
  • Utiliser des poids qui ne sont pas fractionnaires
  • Utilisation de poids estimés
  • Remplacement de l'estimation du maximum de vraisemblance
  • Ne pas utiliser la théorie optimale de la décision de Bayes, qui dicte que les décisions optimales sont basées sur des informations complètes (et non sur le fait que quelque chose dépasse quelque chose d'autre) et sur les fonctions d'utilité / de perte / de coût
Frank Harrell
la source
1
Merci, existe-t-il un moyen d'y parvenir tout en respectant la régression logistique (c'est-à-dire sans toucher à la fonction de vraisemblance)?
tmakino
Cela dépend de ce que «c'est». Quel est le but ultime et comment le modèle sera-t-il utilisé?
Frank Harrell du
J'ai modifié ma question pour fournir des détails sur ce que j'essaie de réaliser.
tmakino
1
À moins que je manque quelque chose, rien de ce que vous avez ajouté n'impliquerait l'utilisation d'un point de coupure. Notez qu'une probabilité prédite fournit son propre taux d'erreur.
Frank Harrell
8

La meilleure approche pour réaliser ce que vous essayez de décrire est probablement d'optimiser directement les paramètres de régression logistique avec une fonction de perte AUC. Le manuel "Méthodes statistiques en médecine diagnostique" de Zhou décrit cette méthode.

L'AUC (zone sous la courbe caractéristique de fonctionnement du récepteur - ou ROC) est grossièrement interprétée comme la probabilité qu'un «cas» échantillonné de façon aléatoire ait une valeur de marqueur plus élevée qu'un «contrôle». Il s'agit d'une mesure de la discrimination du modèle, ou de sa capacité à classer correctement le résultat. Le ROC est une courbe dans le plan unitaire qui montre la sensibilité par rapport à la spécificité 1 pour toutes les valeurs de marqueur possibles (résultats ajustés) dans un modèle de régression.

En utilisant la formulation traditionnelle du modèle de régression logistique,

logit Pr(Y=1|X)=α+βX

avec des rapports de cotes logarithmiques pour les paramètres du modèle, vous pouvez définir grossièrement une fonction de perte basée sur l'ASC pour obtenir des paramètres optimaux. Contrairement à la régression logistique basée sur la vraisemblance, la régression AUC n'est pas régulière et peut converger vers des maxima locaux dans l'espace des paramètres.

AdamO
la source
1
J'aurais pensé que l'ASC n'est pas la meilleure ici parce qu'il y a une petite perte pour les faux négatifs, mais une grande perte pour les faux positifs.
probabilitéislogic
Eh bien, le vrai problème est que l'OP a un résultat continu (ROI) et le dichotomise comme une perte / un gain. Mais en séparant les cheveux, avec la régression ROC en général, les régions de coupure de marqueurs "stupides" comptent en effet pour l'AUC. Vous pouvez utiliser l'ASC partielle si vous préspécifiez ce qui compte comme des valeurs de marqueur significatives et stupides, et la régression AUC partielle a toutes les mêmes capacités de performance (et problèmes).
AdamO