De l'écart de score à la probabilité de victoire

Comment Sharp MMA convertit un écart de score en probabilité via une fonction logistique, et pourquoi un simple ratio de scores ne fonctionnait pas.

Mis à jour le

Une fois les deux scores calculés, il faut les transformer en probabilité. C’est l’étape la moins intuitive du modèle, et celle où une erreur de conception coûte le plus cher.

La formule

P(f1 gagne) = 1 / (1 + e^(−(score1 − score2) / k))

C’est une fonction logistique — la forme standard d’un modèle de type Bradley-Terry, utilisé pour estimer des probabilités de confrontation à partir de forces relatives.

Le paramètre k, appelé sharpness (netteté), vaut 0,25 par défaut.

Trois propriétés utiles :

  • un écart de score nul donne exactement 50 % ;
  • la fonction est symétrique : P(f1) + P(f2) = 1 toujours, sans normalisation supplémentaire ;
  • elle est bornée entre 0 et 1 quel que soit l’écart, donc aucun écart aberrant ne peut produire une probabilité invalide.

Le rôle de la sharpness

k contrôle à quel point un écart de score se traduit en confiance. Pour un même écart de 0,10 :

Sharpness Probabilité
0,05 88 %
0,10 73 %
0,25 (défaut) 60 %
0,50 55 %

Un k petit rend le modèle tranchant : un léger avantage statistique devient une forte conviction. Un k grand le rend prudent : même un écart net reste proche de 50/50.

Le choix n’est pas cosmétique. Un modèle trop tranchant produira des edges énormes et trompeurs sur des combats en réalité serrés. Un modèle trop prudent ne détectera jamais de value, puisque ses probabilités resteront toujours dans le voisinage des cotes du marché.

Une valeur plancher de 0,01 est appliquée : avec k = 0 et un écart de score nul, le calcul produirait 0/0, c’est-à-dire un résultat indéfini.

Pourquoi pas un simple ratio de scores

La version initiale du modèle utilisait l’approche la plus évidente :

P(f1) = score1 / (score1 + score2)

Elle semble raisonnable, et elle est fausse ici. Voici pourquoi.

Les scores sont des moyennes pondérées de valeurs bornées entre 0 et 1. En pratique, un combattant UFC réel obtient un score situé entre environ 0,40 et 0,65 — les valeurs extrêmes sont inatteignables, puisqu’il faudrait être simultanément le meilleur striker, le meilleur lutteur, le plus grand et le plus jeune du roster.

Conséquence : même le mismatch le plus caricatural imaginable donnait un ratio plafonnant autour de 60-65 %. Or un gros favori UFC a une probabilité implicite de marché de 75 à 85 %.

Le modèle était donc structurellement biaisé :

  • sur un favori, il annonçait 62 % quand le marché disait 80 % → edge fortement négatif ;
  • sur un outsider, il annonçait 38 % quand le marché disait 20 % → edge fortement positif.

Le modèle recommandait systématiquement les outsiders, et systématiquement contre les favoris — indépendamment de la moindre réalité sportive. Ce n’était pas une détection de value, c’était un artefact mathématique.

La fonction logistique corrige ce défaut : elle n’est pas bornée par la plage des scores eux-mêmes, mais par l’écart entre eux, divisé par un paramètre réglable. Un mismatch extrême peut désormais produire une probabilité supérieure à 70 %, comme le marché.

La leçon à en tirer

Ce bug est instructif au-delà du cas particulier. Un modèle peut être parfaitement déterministe, testé, et produire des résultats systématiquement faux parce que la forme mathématique choisie ne peut pas exprimer ce qu’on lui demande.

Si vos edges sont toujours positifs sur les mêmes types de combattants — toujours les outsiders, toujours les grands, toujours les jeunes — ce n’est probablement pas une inefficience du marché que vous avez trouvée. C’est un biais dans votre modèle.

À lire ensuite

Mettre cette théorie en pratique

Réglez vos propres coefficients et confrontez vos probabilités aux cotes du marché sur le prochain event UFC.

Ouvrir Sharp MMA