Bonjour.

Vous souhaitez savoir si des prédictions que vous ou d'autres ont faîtes sont valables. Lorsque les faits n'ont pas encore eu lieu, la discussion porte sur les arguments des uns et des autres. Mais a posteriori, on peut confronter la prédiction aux faits et c'est cette évaluation quantitative qui nous intéresse ici. Car cette question se pose tout le temps, avec des conséquences essentielles, mais à ma connaissance il n'y a pas de réponse satisfaisante.

Les prédictions qui peuvent donner lieu à une évaluation quantitative a posteriori sont celles qui portent sur des faits mesurables. Autrement dit, c'est un très vaste ensemble, et nous nous restreindrons ici aux prédictions portant sur la réalisation ou non d'un évènement (on mesurera 1 si l'évènement a lieu, 0 sinon).


Nous supposons un ensemble d'évènements indépendants, chacun ayant une probabilité propre de se réaliser. Nous estimons chacune de ces probabilités et souhaitons a posteriori savoir si nous avions effectué de bonnes prédictions. Comment faire ?
Nous supposons que d'autres ont réalisé leurs propres estimations des probabilités de réalisation des évènements et nous voulons nous comparer à eux.
Nous disposons au total pour l'analyse d'un vecteur de réalisations (constitué de 0 et 1) et de vecteurs de prédictions (constitués d'estimations entre 0 et 1).

Si vous savez évaluer ces vecteurs de prédictions, j'attends votre post avec impatience. Sinon, je vous indique ci-dessous quelle est mon approche personnelle actuellement.



Une première idée est d'attribuer un score à chaque prédiction, score qui dépend de la probabilité estimée de l'évènement effectivement réalisé, notée x.
Ensuite, il faut opérer sur les scores de sorte à obtenir le score global, celui qui départagera les différents vecteurs de prédictions.

Il s'agit donc de déterminer une règle de départage des prédictions et de faire en sorte que le meilleur vecteur de prédictions selon cette règle obtienne le score le plus élevé.

Le règle de départage que l'on voudrait se donner est : le meilleur vecteur est celui qui minimise la somme des écarts à la vraie probabilité (ou celui qui minimise la somme des carrés des écarts à la vraie probabilité). Mais je ne connais pas de fonction de score qui satisfasse à ce critère.
Il est possible par contre de scorer de sorte que chaque prédiction obtienne en moyenne le meilleur score lorsqu'elle égale la vraie probabilité. Deux des ces fonctions sont les suivantes : -(1-x)² et ln(x).
C'est à dire que si la vraie probabilité (notée p) égale 0.7, vous obtenez la meilleure espérance mathématique de score lorsque vous prédisez une probabilité de 0,7, espérance qui est : ln(0,7)*0,7+ln(0,3)*0,3=-0,6109. Si vous prédisez 71%, vous obtenez ln(0,71)*0,7+ln(0,29)*0,3=-0,6111; si vous prédisez autre chose que 70%, vous obtenez toujours une espérance inférieure à -0,6109.

Remarquez que l'addition des scores calculés avec ln(x) donne ln(x1)+ln(x2)+ln(x3)+...+ln(xN ) s'il y a N prédictions. On ne change pas le classement des prédictions en prenant l'exponentiel, ce qui donne x1*x2*...*xN. Une méthode équivalente pour scorer les vecteurs de prédiction est donc de calculer le produit des probabilités estimées des évènements réalisées, c'est à dire calculer la vraisemblance, fonction largement utilisée en statistiques.

L'inconvénient des ces fonctions est que le classement des différents vecteurs est d'autant plus affecté par les erreurs de prédictions que x s'éloigne de 0,5. C'est à dire qu'un vecteur obtiendra un score plus grand s'il est moins fiable (ie si la valeur absolue de l'écart à la vraie probabilité est grande) lorsque x est proche de 0,5 que lorsque il s'en éloigne.
Comme dit précédemment, je ne connais pas de fonctions de score qui satisfasse le critère de minimisation de la somme des écarts à la vraie probabilité et je crains qu'il n'en existe pas (*).


Une deuxième idée est alors de se servir d'une estimation de p, de sorte à ne plus faire dépendre le score du niveau de p mais seulement de l'erreur à p.

Une illustration de cette idée est le modèle suivant.
En premier lieu, on calcule la médiane des prédictions de la probabilité de l'évènement réalisé (si plus d'un nombre peut être la médiane, on considérera comme médiane la moyenne des ces nombres) et on la note m.
Si une estimation est supérieure à cette médiane, c'est que selon la personne ayant réalisée l'estimation, les autres ont sous-estimé cette probabilité. A l'inverse, si l'estimation est inférieure à la médiane, la personne pense que les autres ont sur-estimé la probabilité de réalisation de l'évènement effectivement réalisé.
Dans le premier cas, elle se voit attribuer 1-m point. Dans le second, on lui retire m point. En espérance, elle obtient ainsi |p-m| point lorsqu'elle prédit correctement si les autres sur-estiment ou sous-estiment la vraie probabilité p d'un évènement.

Plutôt que la médiane, on peut prendre la moyenne des prédictions pour estimer la vraie probabilité. L'intérêt de la médiane est qu'il y a autant de perdant que de gagnant.

Un inconvénient de cette évaluation de la prédiction est que le gain dépend seulement de la position de l'estimation par rapport à m : supérieure, égale ou inférieure. Pour un m donné, le gain peut ne pas varier et même passer de négatif à positif lorsque la différence de x à p augmente.


(*) Je reviens sur les fonctions de score : je donne d'abord un début de façon de trouver de telles fonctions analytiquement; j'indique ensuite une méthode pour calculer la totalité des tables de score qui satisfont le critère du "meilleur score moyen pour x=p".

On cherche une fonction f(x) qui associe un score à la probabilité prédite d'un évènement effectivement réalisé. L'espérance de ce score doit être maximale pour x=p, p étant la vraie probabilité de l'évènement. L'espérance du score est E(x,p)=p*f(x)+(1-p)*f(1-x). La dérivée partielle de E(x,p) en x est : p*f '(x)-(1-p)*f '(1-x). Pour tout p de 0.5 à 1 donné, le maximum de E(x,p) est atteint lorsque cette dérivée s'annule, c'est à dire lorsque p*f '(x)-(1-p)*f '(1-x) = 0 ; on veut que ce maximum soit atteint pour x=p, donc on recherche les fonctions satisfaisant : pour tout p de 0.5 à 1, p*f '(p) = (1-p)*f '(1-p) . Nous savons depuis tout à l'heure que -(1-x)² et ln(x) sont deux de ces fonctions.

Analytiquement, je ne sais pousser plus loin.

Par contre, je peux construire simplement sur tableur l'ensemble des tables de score (c'est à dire des fonctions de score discrètes) qui satisfont le même critère de maximalité de l'espérance de score pour x=p.
Démonstration : pour x fixé, si ax est le gain en cas de réalisation de l'évènement et bx la perte en cas de non réalisation pour une prédiction x, l'espérance de score est E(x,p)=ax*p+bx*(1-p) , soit (ax-bx)*p+bx . Le maximum de E(x,p) doit être atteint pour x=p, donc E(p,p)>E(p-1,p) et E(p-1,p-1)>E(p,p-1) . Il existe donc pour tout p un y entre p-1 et p pour lequel E(y,p-1)=E(y,p). Notons yp ce y dépendant de p. On a donc (ax-bx)*yp+bx = (ax-1 - bx-1)*yp+bx-1 (où x-1 est en indice). Ainsi, à partir de tous les ax, de tous les yp et d'un bx arbitraires, on peut calculer l'ensemble (unique) des bx, c'est à dire la totalité de la table de score.
En bidouillant, je n'ai trouvé par cette méthode aucune table satisfaisante (qui limite le poids dans le score des prédictions éloignées de 0,5). Comme cette méthode donne pourtant la possibilité de créer toute table répondant au critère minimale de la meilleure espérance de score pour x=p, j'ai l'intuition qu'il n'existe pas de fonctions de score qui respecte un critère plus fort.



Sources : malheureusement, aucune (si ce n'est une discussion avec le webmaster américain de Probability Sports, qui m'a révélé utiliser pour son site de paris sportifs la table de score donnée par la fonction 100-((100-100*x)²/25) )