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:
- Ajuster le modèle de régression logistique standard
- En utilisant un seuil de prédiction égal à 0,5, identifiez toutes les prédictions positives
- Attribuer un poids 1 pour les observations à prédiction positive, 0 pour toutes les autres
- 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:
- Fractionner les données en formation / test
- 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
- 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?
la source
Réponses:
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 iOuije
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 = 1Xje β Xjeβ> 0 je Xjeβ> 0 1Xjeβ> 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 βje Ouije= 1 1Xjeβ> 0= 1 je Ouije= 0 1Xjeβ> 0= 1 β
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:
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:β
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β β β N N convergence. (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
la source
Il y a plusieurs problèmes avec cette approche, notamment:
la source
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,
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.
la source