
Qui remportera la Coupe du monde de football 2026 ?
le 11 juin avec 48 équipes, 104 matchs et l’habituelle avalanche de prises de vue chaudes. Je voulais une prévision que je pourrais réellement défendre. Pas seulement un modèle d’apprentissage automatique sympa avec de bons résultats, mais un modèle où chaque chiffre renvoie à une hypothèse explicite sur laquelle je pourrais argumenter.
Cet article construit cette prévision à partir de zéro. C’est volontairement simple : évaluez chaque équipe, convertissez chaque match en répartition de buts et simulez l’ensemble du tournoi des dizaines de milliers de fois.
Cela peut sembler très spécifique au football, mais presque tout ce qui est présenté dans cet article, de la méthodologie à la façon dont nous interprétons les résultats, est universel à la science des données. Échangez les « équipes » contre les commerciaux, les dates de livraison, les charges de serveur ou les cohortes de désabonnement et les trois mêmes étapes vous donnent une prévision défendable au lieu d’une estimation ponctuelle.
La véritable compétence transférable ici consiste à construire un pipeline où chaque chiffre renvoie à une hypothèse sur laquelle vous pouvez discuter, plutôt qu’à une hypothèse qu’un modèle d’apprentissage automatique en boîte noire vous cache.
Dans notre cas du football, cela signifie : pas de données de suivi, pas d’apprentissage profond, rien que vous ne puissiez reconstruire en un après-midi. Mais n’arrêtez pas de lire ici ! Le problème n’est pas la sophistication. Il s’agit d’avoir un pipeline transparent qui vous oblige à vous confronter aux choix de modélisation que cachent les boîtes noires. Nous allons construire notre modèle en trois étapes et interroger les hypothèses à chacune d’entre elles.
Étape 1 : Évaluez chaque équipe avec Elo
Vous ne pouvez pas prédire un match sans connaître la qualité de chaque équipe. L’option la plus propre disponible dans le commerce pour les équipes nationales est le Classement Elo du football mondialune adaptation du système d’échecs d’Arpad Elo.
Elo est une équation unique auto-corrective. Chaque équipe porte une note R. Avant un match, le score attendu de l’équipe A contre l’équipe B (sur une échelle de 0 à 1, où 1 est une victoire) est une fonction logistique de la différence de notation :
E_A = 1 / (1 + 10^(-(R_A - R_B) / 400))
Après le match, vous orientez la note vers ce qui s’est réellement passé :
R_A' = R_A + K * (S_A - E_A),
où S_A est le résultat réalisé (1 victoire, 0,5 nul, 0 défaite) et K contrôle la vitesse à laquelle les notes évoluent. La variante football ajoute deux rides importantes : K échelles avec le marge de victoire (un 4-0 déplace les notes de plus qu’un 1-0), et cela donne une pondération aux matchs compétitifs au-dessus des matchs amicaux. La constante 400 est un choix d’échelle – c’est ce qui fait qu’un écart de 400 points correspond à environ un favori de 10 : 1 (E ≈ 0.91).
Pour le modèle, nous n’avons besoin que des notes actuelles, stockées sous forme de dictionnaire. J’utilise l’instantané d’avant-tournoi de début juin 2026, pris à partir d’un Ensemble de données Kaggle librement réutilisable qui compile ces notes :
# World Football Elo Ratings, pre-tournament snapshot (early June 2026).
# Source: "2026 FIFA World Cup — Historical Elo Ratings" (Kaggle, CC BY-SA 4.0),
# compiling data from World Football Elo Ratings (eloratings.net).
ELO = {
"Spain": 2155, "Argentina": 2113, "France": 2062,
"England": 2020, "Brazil": 1988, "Portugal": 1984,
"Colombia": 1977, "Netherlands": 1944, "Germany": 1925,
# ... all 48 qualified teams
}
Vérification des hypothèses : Elo regroupe tout – la forme, la qualité de l’équipe, la fatigue – en un seul chiffre et suppose que la force d’une équipe est à peu près stationnaire à court terme. C’est une simplification importante, mais honnête et vérifiable, et Elo est difficile à battre en tant que fonctionnalité unique.
Étape 2 : Transformez un écart de notation en une répartition des objectifs
Une différence de note nous donne une victoire probabilitémais pour simuler un tournoi nous voulons scores – ils déterminent la différence de buts, les bris d’égalité de groupe et la texture de la chose. La démarche standard dans l’analyse du football consiste à modéliser les objectifs de chaque équipe comme un Processus de Poisson.
La distribution de Poisson donne la probabilité d’observer k événements lorsque les événements se produisent indépendamment à un rythme moyen constant λ:
P(k goals) = λ^k * e^(-λ) / k!
Les buts correspondent bien à cela empiriquement : ils sont discrets, relativement rares et pratiquement sans mémoire au cours d’un match. Si nous traitons le nombre de buts des deux équipes comme des variables de Poisson indépendantes avec des moyennes λ_home et λ_awayla distribution complète des scores n’est que le produit extérieur de leurs deux pmf, et nous pouvons lire les probabilités de victoire/match nul/perte en additionnant les cellules appropriées :
from scipy.stats import poisson
import numpy as np
def match_probs(lam_home, lam_away, max_goals=10):
h = poisson.pmf(np.arange(max_goals + 1), lam_home)
a = poisson.pmf(np.arange(max_goals + 1), lam_away)
grid = np.outer(h, a) # grid[i, j] = P(home i, away j)
p_home = np.tril(grid, -1).sum() # home goals > away goals
p_draw = np.trace(grid)
p_away = np.triu(grid, 1).sum()
return p_home, p_draw, p_away
Vérification des hypothèses : l’hypothèse d’indépendance est pratique mais imparfaite – les scores réels montrent une corrélation et un excès de matchs nuls à faible score (0-0, 1-1). Le correctif standard est le Dixon-Coles ajustement, qui ajoute un terme de correction pour les scores faibles et une pondération temporelle sur les correspondances historiques. Nous l’ignorons ici pour plus de clarté ; c’est une mise à niveau naturelle et exactement le genre de raffinement que mon livre à venirLe chapitre Poisson de passe en revue.
Étape 3 : Connectez les notes aux objectifs
Nous avons besoin λ_home et λ_away en fonction de l’écart Elo. Un élément solide du folklore de la modélisation du football est qu’un avantage Elo d’environ 400 points vaut environ un objectif de suprématie. Nous avons donc réparti une base de référence d’environ 2,7 buts au total (une moyenne internationale typique) entre les équipes en fonction de leur différence de note :
GOALS_BASE = 2.7
GOALS_PER_400_ELO = 1.0
def lambdas(elo_a, elo_b):
diff = (elo_a - elo_b) / 400.0 * GOALS_PER_400_ELO
la = max(0.15, GOALS_BASE / 2 + diff / 2)
lb = max(0.15, GOALS_BASE / 2 - diff / 2)
return la, lb
Le plancher de 0,15 empêche même un énorme outsider de se voir attribuer un taux de notation négatif non physique. Une version plus fondée sur des principes convient log(λ) = β₀ + β₁·Δrating comme un Poisson GLM sur des données de correspondance réelles ; l’heuristique de suprématie linéaire ci-dessus est la version au dos de l’enveloppe et atterrit au même endroit pour les favoris.
Étape 4 : Simulez le tournoi 10 000 fois
Une seule simulation n’est pas une prévision, c’est juste une possible année 2026. La prévision est la distribution sur des milliers d’entre eux. Nous parcourons donc toute la tranche et comptons la fréquence à laquelle chaque équipe gagne.
Le format 2026 est nouveau et mérite d’être précisé : 48 équipes réparties en 12 groupes de quatre, où les deux premiers de chaque groupe plus les huit meilleures équipes classées troisièmes avancer vers un KO à élimination simple à 32 équipes.
Cette règle de la troisième place est tout à fait combinatoire, car vous ne pouvez pas décider qui avance tant que chaque groupe n’a pas terminé. Ainsi, la simulation suit les points et la différence de buts des quatre équipes de chaque groupe, classe les équipes classées troisièmes dans les groupes et sélectionne les huit meilleures. Lors des huitièmes de finale, les tirs au but sont nuls, que nous modélisons comme un tirage au sort légèrement poussé vers le côté le plus fort.
N = 10_000
title = {t: 0 for t in ELO}
for _ in range(N):
champion = simulate_one_tournament() # groups -> R32 -> ... -> final
title[champion] += 1
probs = {t: title[t] / N for t in ELO}
Pourquoi 10 000 ? Parce qu’une probabilité simulée est elle-même une estimation avec erreur d’échantillonnage. Une probabilité de titre p estimé à partir de N les tournois indépendants ont une erreur standard de sqrt(p(1-p)/N). Pour un coup de coeur de 15% à N = 10,000cela représente environ 0,36 point de pourcentage – suffisamment serré pour que le classement soit stable et que les meilleurs chiffres ne vacillent pas entre les courses. Déposer à N = 500 et l’erreur standard quadruple et puis certains à ~ 1,6 points, suffisamment pour remanier le milieu de terrain. Vectoriser la simulation (dessiner tout N tournois sous forme d’opérations de tableau plutôt que de boucle Python) rend plus de 20 000 exécutions essentiellement gratuites.
Ce que dit le modèle
| Équipe | Probabilité de gagner |
|---|---|
| Espagne | 16,0% |
| Argentine | 11,9% |
| France | 7,9% |
| Angleterre | 7,0% |
| Brésil | 5,4% |
| Pays-Bas | 4,7% |
| Portugal | 4,3% |
| Allemagne | 3,7% |
Tableau 1 : Résultats possibles de la Coupe du monde, selon le modèle. Source : auteur.
Deux choses ressortent. Tout d’abord, le favori s’assoit 15 % et non 50 %. Même la meilleure équipe du monde est bien plus susceptible pas gagner un KO à 48 équipes plutôt que de le gagner – une conséquence directe de la variance de Poisson dans un sport à faible score composé de sept matchs gagnants ou rentrés à la maison.
Deuxièmement, ces chiffres sont remarquablement proches des prévisions publiées par des modèles statistiques beaucoup plus élaborés, du type construit sur des années de données de correspondance et des dizaines de fonctionnalités. C’est rassurant : un pipeline transparent Elo-plus-Poisson récupère l’essentiel de ce qu’un système de prévision lourd produit, car les deux font en fin de compte la même chose : cartographier la force de l’équipe sur les probabilités de résultats.
Ce qui est bien et ce qu’il laisse de côté
Le modèle est honnête et simple, et chaque simplification est un cadran étiqueté que vous pouvez tourner :
- Lieu neutre. Chaque match est traité comme neutre ; les hôtes (États-Unis, Mexique, Canada) ne reçoivent aucun coup de pouce. L’ajout d’un terme d’avantage à domicile (~ + 50 à 100 Elo, valant historiquement un tiers d’un objectif) est un changement d’une seule ligne.
- Notes statiques. Elo est figé au coup d’envoi ; le modèle ne se met pas à jour au fur et à mesure du déroulement du tournoi. Une réévaluation après chaque tour affinerait les prévisions du tour ultérieur.
- Objectifs de Poisson indépendants. Pas de correction du faible score Dixon-Coles, pas d’inflation explicite.
- Support ensemencé. J’utilise une table à élimination directe plutôt que la carte exacte des huitièmes de finale de la FIFA. Pour les chances de titre des meilleures équipes, cela fait à peine bouger l’aiguille, mais cela compte pour des chemins spécifiques.
Chacun d’entre eux fait l’objet d’un chapitre du livre que j’ai co-écrit, Analyse du football avec apprentissage automatique (O’Reilly, 2026) : le modèle d’objectifs de Poisson et ses extensions au chapitre 6, les évaluations des équipes au chapitre 8 et la transformation des probabilités en décisions de paris au chapitre 9. Cet article est la version jouet de ce pipeline – et un jouet que vous pouvez réellement exécuter en un après-midi.
Essayez-le vous-même
De nombreux autres exemples peuvent être trouvés dans le livre Dépôt GitHub – clonez-le, ajoutez les classements Elo d’aujourd’hui et vous obtenez vos propres prévisions pour la Coupe du monde plus rapidement que vous ne pouvez le demander à Claude.
Dans un autre article, vous verrez comment je reconstruis cette structure avec onze différents modèles, adaptez-le à des données de match réelles et regardez la FIFA couronner quatre champions différents.
Pour l’instant, mon modèle dit Espagne. Le tournoi débute le 11 juin. Nous le découvrirons ensemble.
Ari Joury est co-auteur de Analyse du football avec apprentissage automatique (O’Reilly, 2026).



