MagoMatch non raccoglie opinioni e non copia i pronostici di nessuno. Ogni numero pubblicato nasce da un modello statistico applicato ai risultati storici delle partite. Questa pagina spiega come, e soprattutto quanto ci prende.
Il modello assegna a ogni squadra un indice di attacco e uno di difesa, espressi come moltiplicatori della squadra media del suo campionato. Attacco 1.30 vuol dire «segna il 30% in più della media»; difesa 0.80 vuol dire «subisce il 20% in meno». I gol attesi di una partita nascono dall'incrocio fra l'attacco di una e la difesa dell'altra, moltiplicati per la media del campionato.
Un risultato di un anno fa non dice quanto uno di settembre. Ogni partita entra nel calcolo con un peso che dimezza ogni sei mesi: una gara di sei mesi fa vale la metà di una di oggi, una di tre anni fa vale il 3%. È la correzione introdotta da Dixon e Coles nel 1997, ed è la ragione per cui il modello segue i cambi di forma invece di restare ancorato al passato.
Dai gol attesi si costruisce la probabilità di ogni singolo punteggio, da 0-0 a 10-10. Tutto il resto è una somma di caselle di quella matrice: il segno 1X2, l'Over e l'Under, il Goal, le doppie chance. Per questo i numeri del sito non possono contraddirsi fra loro: vengono tutti dallo stesso calcolo.
Una correzione aggiuntiva interviene sui punteggi bassi. Nella realtà lo 0-0 e l'1-1 escono più spesso di quanto una distribuzione di Poisson indipendente preveda: quando una squadra segna presto la partita cambia natura, e i due punteggi non sono davvero indipendenti. Il modello stima campionato per campionato quanto vale questa distorsione e la corregge.
Capita di leggere segno 1 e risultato più probabile 1-1. Non è un errore. Il segno 1 raccoglie la somma di 1-0, 2-0, 2-1, 3-1 e via dicendo, e può arrivare al 53%; l'1-1 è invece un singolo punteggio che ne vale magari il 12%, e resta comunque il più frequente preso da solo.
Per non pubblicare numeri che sembrano sbagliati, il risultato esatto consigliato è sempre il più probabile fra quelli coerenti con il segno consigliato. Accanto mostriamo comunque il punteggio più probabile in assoluto quando differisce, perché la distanza fra i due dice quanto la partita è aperta. Nel controllo storico questa scelta costa 0,8 punti di accuratezza sul risultato esatto: un prezzo che paghiamo volentieri per non pubblicare mai un pronostico che si contraddice.
Sul rendimento del modello esistono due misure, e mescolarle darebbe un numero che non significa niente. Sono tenute separate apposta:
Il controllo storico è un esperimento chiuso, fatto una volta sola su un solo campionato, con il modello ristimato a ritroso. Il rendimento dal vivo è invece il conto dei pronostici che abbiamo davvero pubblicato su questo sito, su tutti i campionati coperti, confrontati con il risultato uno per uno. Il primo dice quanto vale il metodo dove i dati sono buoni; il secondo dice quanto vale il sito così com'è, leghe minori comprese. Il secondo è più basso, e deve esserlo.
Il modello è stato verificato con un controllo walk-forward: scorrendo il calendario in avanti, prima di ogni giornata viene ristimato usando esclusivamente le partite già giocate a quella data. Nessuna informazione posteriore entra nel calcolo, quindi i numeri sono quelli che il sito avrebbe davvero pubblicato allora. Misura fatta su 1.541 partite di Serie A dall'agosto 2022, e su nient'altro:
| Misura (controllo storico, Serie A) | Modello | Base storica |
|---|---|---|
| Accuratezza del segno | 53,2% | 40,7% |
| RPS (più basso è meglio) | 0,1968 | 0,2300 |
| Risultato esatto azzeccato | 13,2% | — |
Numeri del controllo storico, fissi: si riferiscono a quell'esperimento e non cambiano finché non lo si rifà.
La proprietà più importante di un modello di pronostici non è l'accuratezza: è la calibrazione. Quando diciamo 60%, deve uscire il 60% delle volte, altrimenti le percentuali sono decorazione. Ecco il confronto misurato sulle stesse 1.541 partite del controllo storico:
| Probabilità dichiarata | Frequenza reale | Partite |
|---|---|---|
| 30-40% | 38,7% | 266 |
| 40-50% | 48,5% | 582 |
| 50-60% | 57,2% | 432 |
| 60-70% | 71,1% | 187 |
| 70-80% | 75,0% | 68 |
Questi numeri non sono scritti nel codice: escono dal confronto fra i pronostici pubblicati e i risultati arrivati, e si aggiornano da soli. Se il modello peggiora, questa pagina lo dice senza che nessuno la riscriva. Base attuale: 10357 partite refertate su tutti i campionati coperti.
| Misura (dal vivo, tutti i campionati) | Valore |
|---|---|
| Segno indovinato | 45.9% |
| Risultato esatto azzeccato | 8.1% |
| Over / Under 2.5 | 60.7% |
| Goal / NoGoal | 56.1% |
| Sicurezza media dichiarata | 44.7% |
L'ultima riga è la più severa di tutte: il modello si dichiarava sicuro al 44.7% e ha indovinato il 45.9%, uno scarto di -1.2 punti. Più è vicino a zero, più le percentuali del sito significano quello che dicono. Tutti i numeri, partita per partita.
Un modello statistico produce probabilità, e una probabilità è già tutto quello che c'è da sapere: un esito dato al 62% è più probabile di uno dato al 38%, e questo lo si legge direttamente nella riga. Aggiungere sopra un'etichetta che dichiara quel pronostico «affidabile» non aggiunge informazione — suggerisce una garanzia che nessun modello può dare, e sposta la responsabilità della scelta da chi legge a noi.
Preferiamo pubblicare i numeri e lasciarli parlare: le probabilità di ogni esito, il risultato esatto che ne discende, i gol attesi, e il rendimento verificato di tutti i pronostici già confrontati con la realtà. Chi legge decide da sé quanto pesano.
Sono due cose diverse e le teniamo separate, perché confonderle sarebbe comodo per noi e fuorviante per chi legge.
Il codice di questo sito è stato scritto in larga parte con l'assistenza di un'intelligenza artificiale. Vale sia per le pagine che stai leggendo sia per il motore Python che calcola i pronostici: struttura, algoritmi, query e buona parte dei testi sono nati in quel modo, sotto revisione umana. Lo diciamo perché è vero, non perché sia richiesto.
I pronostici, invece, non li scrive un'intelligenza artificiale. Il numero che vedi accanto a una partita esce da un calcolo statistico deterministico — un modello di Poisson con la correzione di Dixon-Coles, stimato sui risultati storici. Dati gli stessi dati in ingresso, produce sempre lo stesso risultato. Non c'è nessun modello linguistico nel motore: non ne usa neanche uno, e le uniche librerie impiegate sono quelle standard di Python.
Le analisi delle partite sono generate automaticamente, ma non da un'intelligenza artificiale: sono composte da frasi preparate in anticipo, scelte in base ai numeri di quella partita. È il motivo per cui suonano simili fra loro — non stanno improvvisando, stanno riportando. Nessuna analisi è riletta da una persona prima della pubblicazione, e quindi nessuna va presa come il giudizio di qualcuno.
Non conosce le formazioni, gli infortuni dell'ultima ora, le squalifiche, il mercato, il meteo, né la motivazione di una squadra già salva all'ultima giornata. Non legge le quote dei bookmaker. Vede i risultati, e da quelli ricostruisce la forza delle squadre. È una visione parziale, e i pronostici vanno letti sapendolo.
Nei campionati minori il modello sa ancora meno: molte leghe non pubblicano statistiche avanzate e hanno pochi dati storici. Lì le stime valgono meno, e lo diciamo apertamente invece di nasconderlo dietro una percentuale dall'aria sicura. È anche la ragione principale per cui il rendimento dal vivo resta sotto il controllo storico sulla Serie A.
I contenuti di MagoMatch hanno finalità informativa e statistica e non costituiscono un invito a scommettere né una consulenza. Nessuna probabilità garantisce un esito. Il gioco può causare dipendenza patologica. Vietato ai minori di 18 anni.