Pourquoi aller plus loin que les modèles de base
Si tu as construit ton premier modèle ELO et Poisson, tu as déjà un outil qui fonctionne. Mais tu remarques probablement ses limites : il se trompe sur certains types de matchs, il ne réagit pas assez vite aux changements de forme, il traite une équipe de D4 comme le Real Madrid.
Ce guide présente 10 améliorations concrètes, dans l'ordre de priorité recommandé. Implémente-les une par une. Backteste après chaque ajout. N'en combine jamais deux nouvelles simultanément.
Amélioration 1 — ELO par région
Le problème
Dans un modèle ELO basique, toutes les ligues partagent le même référentiel. Un score de 1600 en Premier League est traité comme un 1600 en D3 bulgare. C'est une absurdité — les niveaux sont incomparables.
La solution
Créer des pools ELO séparés par région, avec des facteurs de conversion inter-régions pour les matchs européens :
| Région | Ligues | Offset vs Europe Top 5 |
|---|---|---|
| Europe Top 5 | PL, Liga, Bundesliga, Serie A, Ligue 1 | Référence (0) |
| Europe élargi | Eredivisie, Primeira Liga, Ekstraklasa... | -150 points |
| Amérique du Sud | Serie A BR, Superliga AR... | -100 points |
| Asie | J-League, K-League, A-League... | -250 points |
Prompt pour Claude :
Amélioration 2 — ELO contextuel (domicile / extérieur)
Le problème
Certaines équipes sont radicalement différentes à domicile et en déplacement. L'Atletico Madrid à domicile (ELO 1900) est une forteresse. L'Atletico en déplacement (ELO 1760) est beaucoup plus vulnérable. Un ELO global à 1840 masque cette réalité.
La solution
Calculer trois scores ELO distincts par équipe : elo_home, elo_away, elo_global. Pour la prédiction, utiliser elo_home de l'équipe qui reçoit contre elo_away de l'équipe visiteuse.
Amélioration 3 — Facteur K dynamique
Le problème
Un K fixe à 30 traite un match de Ligue des Champions et un match de coupe nationale de D2 exactement de la même façon. Ça n'a pas de sens.
La solution
| Type de match | K recommandé |
|---|---|
| Champions League, Coupe du Monde | 40 |
| Europa League, Conference League | 35 |
| Championnats Top 5 européens | 32 |
| Autres championnats | 28 |
| Coupes nationales majeures | 22 |
| Matchs amicaux | 8 |
De plus, pour les équipes avec peu de matchs dans la base (< 30), multiplier K par 1.5 pour accélérer la calibration initiale.
Amélioration 4 — Dépréciation temporelle ELO
Le problème
Un résultat de 3 ans pèse autant qu'un résultat d'hier. Une équipe peut avoir complètement changé de visage en 3 ans — nouvelle direction, nouveaux joueurs, nouveau système.
La solution simple (recommandée pour débuter)
- Matchs de moins de 6 mois : poids 1.0
- Matchs entre 6 et 12 mois : poids 0.7
- Matchs entre 12 et 24 mois : poids 0.4
- Matchs de plus de 24 mois : poids 0.15
Amélioration 5 — Correction Dixon-Coles (Poisson)
Le problème
Le modèle Poisson standard sous-estime légèrement les scores faibles (0-0, 1-0, 0-1, 1-1). En réalité, ces scores sont plus fréquents que ce que Poisson prédit. Pour les marchés de scores exacts et certains marchés BTTS, cette erreur est significative.
La solution
Ajouter un paramètre rho (ρ) qui corrige les probabilités des 4 scores faibles :
| Score | Correction |
|---|---|
| 0-0 | Multiplié par (1 - λ_dom × λ_ext × ρ) |
| 1-0 | Multiplié par (1 + λ_ext × ρ) |
| 0-1 | Multiplié par (1 + λ_dom × ρ) |
| 1-1 | Multiplié par (1 - ρ) |
| Tous les autres | Inchangés |
Valeur typique de ρ en football : entre -0.10 et -0.15 (à estimer par maximum de vraisemblance sur tes données).
Amélioration 6 — Pondération temporelle Poisson
Le problème
Dans ton modèle Poisson, tous les matchs dans la fenêtre de 15 matchs ont le même poids. Un match d'il y a 3 mois pèse autant qu'un match d'hier. Pourtant, la forme récente est plus pertinente.
La solution
Appliquer une pondération exponentielle décroissante :
Le match le plus récent a un poids de 1.0, celui d'il y a 1 semaine un poids de 0.92, etc. Après 6 mois, le poids est d'environ 0.08 — presque négligeable.
Amélioration 7 — Intégration H2H pondérée
Les confrontations directes récentes contiennent une information que les stats générales ne captent pas : comment ces deux équipes se comportent spécifiquement l'une contre l'autre.
Règle de pondération recommandée :
- Si ≥ 3 confrontations disponibles de moins de 3 ans : pondérer 20% H2H / 80% modèle
- Si confrontations vieilles de plus de 18 mois en moyenne : réduire à 10% H2H
- Si moins de 3 confrontations : utiliser uniquement le modèle (pas de H2H)
Amélioration 8 — Fusion ELO + Poisson pondérée dynamiquement
Au lieu de prendre simplement la moyenne des deux modèles, pondère selon le marché et le contexte :
| Contexte | Poids ELO | Poids Poisson |
|---|---|---|
| Marché 1N2 / Handicap | 60% | 40% |
| Marché Over/Under / BTTS | 20% | 80% |
| Peu de données (< 8 matchs) | +20% | -20% |
| Beaucoup de données (> 20 matchs) | -10% | +10% |
Amélioration 9 — Calibration avec le Brier Score
Le Brier Score mesure la précision de ton modèle. Plus il est bas, mieux ton modèle prédit :
| Brier Score (football) | Qualité |
|---|---|
| < 0.22 | Excellent |
| 0.22 à 0.24 | Bon |
| 0.24 à 0.26 | Acceptable |
| > 0.26 | Insuffisant |
Calcule le Brier Score AVANT et APRÈS chaque amélioration. Si le score monte (empire), l'amélioration n'est pas adaptée à tes données.
Amélioration 10 — Courbe de calibration
La courbe de calibration vérifie que tes probabilités estimées correspondent à la réalité. Si ton modèle dit 70% et que l'événement se produit 50% du temps sur un grand nombre de cas → ton modèle surévalue systématiquement.
Méthode : groupe tes prédictions par tranches de 10% (0-10%, 10-20%...) et calcule la fréquence réelle dans chaque tranche. Un modèle parfait = fréquence réelle = probabilité estimée.
Ordre d'implémentation recommandé
| Priorité | Amélioration | Impact | Complexité |
|---|---|---|---|
| 1 | Pondération temporelle Poisson | Élevé | Faible |
| 2 | Dixon-Coles | Moyen-élevé | Moyen |
| 3 | ELO contextuel dom/ext | Moyen | Moyen |
| 4 | Facteur K dynamique | Moyen | Faible |
| 5 | H2H pondéré (20%) | Faible-moyen | Faible |
| 6 | ELO par région | Élevé sur matchs inter-régions | Élevé |
| 7 | Dépréciation temporelle ELO | Moyen | Moyen |
| 8 | Fusion pondérée dynamique | Élevé | Moyen |
| 9 | Calibration Brier Score | Validation | Faible |
| 10 | Courbe de calibration | Diagnostic | Faible |
OddsMapper · CSV téléchargeables · 108 ligues · 10+ ans d'historique
Accéder gratuitement →