Comment choisir la meilleure métrique pour mesurer mon étalonnage?

10

Je programme et fais du développement piloté par les tests. Après avoir modifié mon code, je lance mes tests. Parfois, ils réussissent et parfois ils échouent. Avant d'exécuter un test, j'écris un nombre de 0,01 à 0,99 pour ma certitude que le test réussira.

Je veux savoir si je m'améliore en prédisant si mon test réussira ou échouera. Ce serait aussi bien si je peux savoir si je suis meilleur pour prédire si le test réussira le lundi ou le vendredi. Si ma capacité à prédire le succès d'un test est en corrélation avec d'autres mesures que je surveille, je veux le savoir.

Cela me laisse la tâche de choisir la bonne métrique. Dans Superforcasting, Philip Tetlock propose d'utiliser le score Brier pour mesurer la qualité de l'étalonnage des experts. Une autre métrique qui a été proposée dans la littérature est la règle de notation logarithmique . Il existe également d'autres candidats possibles.

Comment décider quelle statistique utiliser? Existe-t-il un argument en faveur d'une règle de notation par rapport aux autres?

Christian
la source
1
Une source potentielle de difficulté pour mesurer les changements dans votre compétence de prévision est que la difficulté sous-jacente du problème de prévision peut changer. Les changements dans vos compétences peuvent ne pas être distingués des changements dans la difficulté du problème.
Matthew Gunn

Réponses:

1

Je suppose que vous faites des tests unitaires pour votre code.

Une idée à laquelle je peux penser, qui ne ferait peut-être pas exactement ce que vous voulez, est d'utiliser un modèle linéaire.

L'avantage de faire cela, c'est que vous pouvez créer un tas d'autres variables que vous pouvez inclure dans l'analyse.

Disons que vous avez un vecteur qui inclut le résultat de vos tests, et un autre vecteur x qui inclut vos prédictions du résultat.Yx

Maintenant, vous pouvez simplement adapter le modèle linéaire

yi=a+bxi+ϵ

et trouver la valeur de , plus la valeur de b serait élevée, cela indiquerait que vos prévisions s'améliorent.bb

Ce qui rend cette approche agréable, c'est que vous pouvez maintenant commencer à ajouter un tas d'autres variables pour voir si cela crée un meilleur modèle, et ces variables peuvent aider à faire de meilleures prédictions. Les variables pourraient être un indicateur pour le jour de la semaine, par exemple pour le lundi, ce serait toujours 1 et zéro pour tous les autres jours. Si vous incluez cette variable dans le modèle, vous obtiendrez:

yje=une+uneLundi+bXje+ϵ

uneLundi

Vous pouvez également créer une nouvelle variable où vous attribuez un score pour évaluer la difficulté de la tâche que vous avez effectuée. Si vous avez un contrôle de version, vous pouvez par exemple utiliser le nombre de lignes de code comme difficulté, c'est-à-dire que plus vous écrivez de code, plus il y a de chances que quelque chose se casse.

D'autres variables pourraient être, le nombre de tasses de café ce jour-là, l'indicateur des délais à venir, ce qui signifie qu'il y a plus de stress pour terminer les choses, etc.

Vous pouvez également utiliser une variable de temps pour voir si vos prévisions s'améliorent. En outre, combien de temps vous avez passé sur la tâche, ou combien de sessions vous y avez consacré, si vous faisiez une solution rapide et que cela pourrait être bâclé, etc.

En fin de compte, vous avez un modèle de prédiction, où vous pouvez essayer de prédire la probabilité de succès. Si vous parvenez à créer cela, alors peut-être que vous n'avez même pas à faire vos propres prédictions, vous pouvez simplement utiliser toutes les variables et avoir une assez bonne idée de si les choses fonctionneront.

Le fait est que vous ne vouliez qu'un seul numéro. Dans ce cas, vous pouvez utiliser le modèle simple que j'ai présenté au début et simplement utiliser la pente, et refaire les calculs pour chaque période, puis vous pouvez voir s'il y a une tendance dans ce score au fil du temps.

J'espère que cela t'aides.

Gumeo
la source
1
bOuiXunebbbune
@IWS Merci pour la contribution, je suis d'accord avec vous dans la mesure où vous souhaitez une valeur unique pour estimer vos performances, puis omettre l'interception est une bonne idée. Si vous voulez essayer d'interpréter les données plus loin (et vous en avez assez), alors ce pourrait être une bonne idée d'ajouter l'interception et de comparer les modèles.
Gumeo
1

Bien que ce soit loin d'être une réponse et davantage une référence, ce pourrait être une bonne idée de vérifier Steyerberg E - Epidemiology 2012 .

Dans cet article, Steyerberg et ses collègues expliquent différentes façons de vérifier les performances des modèles de prédiction pour les modèles avec des résultats binaires (succès ou échec). L'étalonnage n'est qu'une de ces mesures. Selon que vous souhaitez avoir une probabilité précise , une classification précise ou une reclassification précise, vous pouvez utiliser différentes mesures des performances du modèle. Même si ce manuscrit concerne des modèles à utiliser dans la recherche biomédicale, je pense qu'ils pourraient également s'appliquer à d'autres situations (la vôtre).

Plus spécifiques à votre situation, les métriques d'étalonnage sont vraiment difficiles à interpréter car elles résument (c'est-à-dire la moyenne) l'étalonnage sur toute la gamme des prédictions possibles. Par conséquent, vous pourriez avoir un bon score de résumé d'étalonnage, alors que vos prédictions étaient fausses dans une gamme importante de probabilités prédites (par exemple, vous pourriez avoir un score de brier bas (= bon), tandis que la prédiction de succès est désactivée au-dessus ou en dessous d'un certain probabilité prédite) ou vice versa (un score de synthèse médiocre, tandis que les prévisions sont bien calibrées dans la zone critique). Je vous suggère donc de réfléchir à la question de savoir si une telle plage critique de probabilité de succès prévue existe dans votre cas. Dans l'affirmative, utilisez les mesures appropriées (par exemple, les indices de reclassement). Sinon (ce qui signifie que vous êtes intéressé par l'étalonnage global), utilisez brier,

Pour conclure, l'une des mesures récapitulatives d'étalonnage nécessite votre première étape pour tracer vos probabilités prédites par rapport à la probabilité observée (voir la réponse d'Outlier pour savoir comment, par exemple). Ensuite, la mesure récapitulative peut être calculée, mais le choix de la mesure récapitulative doit refléter l'objectif de prédire le succès de l'échec en premier lieu.

IWS
la source
0

J'ai fait un modèle de prédiction sur des données rares et c'est un grand défi d'obtenir votre modèle calibré dans ces cas. Je vais vous dire ce que j'ai fait, vous pouvez obtenir de l'aide.

J'ai fait 20 bacs de probabilité prédite et essayé de tracer la probabilité de réussite prévue et réelle moyenne. Pour la probabilité prédite moyenne, j'ai pris la moyenne de la plage de bacs. Pour la probabilité réelle moyenne, j'ai calculé le nombre de succès et d'échecs réels dans les bacs, d'où j'ai obtenu la probabilité réelle (médiane) de succès dans le bac. Pour réduire l'impact des valeurs aberrantes, j'ai supprimé les données supérieures et inférieures de 5% avant de prendre la probabilité médiane réelle dans chaque casier.

Une fois que je les ai obtenues, je pouvais facilement tracer les données.

Valeur aberrante
la source
Il serait bon de souligner qu'il s'agit de la première étape du calcul du test d'adéquation de Hosmer-Lemeshow.
jwimberley