Costruisci il tuo modello di previsione calcistica (Poisson)
I dati necessari, un modello Poisson costruito passo dopo passo in una griglia completa di risultati, le correzioni da aggiungere, il backtesting walk-forward che evita il bias del futuro e l'aritmetica che dice quando un modello non vale le ore spese.
Un modello di previsione calcistica è una procedura che trasforma la cronaca delle partite in una probabilità per ogni risultato esatto, e da quella griglia in un prezzo per ogni mercato del coupon. Il cuore del modello è una distribuzione e due numeri per ogni partita: quanti gol ci si aspetta da ciascuna squadra. Tutto il resto è igiene dei dati, correzioni e test, ed è lì che la maggior parte dei modelli fatti in casa fallisce silenziosamente.
In breve.
- Servono i risultati partita per partita con date e luoghi, non le medie di stagione. Dodici partite in casa e dodici in trasferta per club è il minimo operativo.
- Il modello base è Poisson: due valori di gol attesi producono una griglia di risultati, e 1X2, totali e GG/NG sono tutte somme di celle in quella griglia.
- Nella partita elaborata, la griglia dà 51,4% casa, 24,5% pareggio, 24,1% fuori casa — quote eque di 1,95, 4,08 e 4,14.
- Backtest walk-forward o non testare affatto: qualsiasi numero calcolato sull'intera stagione contiene il risultato della partita che stai valutando.
- Il benchmark non è il profitto ma il mercato: se le tue probabilità non sono migliori di quelle del coupon, nessun piano di puntata le salva.
Cosa deve battere il modello
Il confronto non è tra il tuo modello e la realtà, ma tra il tuo modello e il prezzo. Un coupon a tre vie di solito totalizza circa il 105%, quindi il margine è di circa cinque punti distribuiti tra gli esiti — il calcolo è spiegato nella guida al margine del bookmaker.
Questo fissa l'asticella. Per valere la scommessa, la tua probabilità deve battere quella del mercato di più del margine sull'esito che stai puntando. Essere più o meno buono come il coupon è un vero risultato, ma comunque perde soldi a un ritmo costante.
I dati di cui hai realmente bisogno
Inizia con la tabella più piccola che supporti il modello: ogni colonna in più è un'altra cosa da tenere pulita.
| Campo | Perché serve | Trappola comune |
|---|---|---|
| Data e ora del calcio d'inizio | Ordina i dati per i test e la ponderazione per la recenticità | Ordinare per numero di giornata invece che per data dopo i rinvii |
| Squadra di casa e ospite | Separa ogni dato per luogo | Cambi di nome e doppie grafie che creano due squadre |
| Gol per ogni squadra | L'unica variabile di output obbligatoria del modello | Registrare gol dei tempi supplementari o dei rigori nelle partite di coppa |
| Competizione | Partite di campionato e coppa si comportano diversamente | Mescolare un campionato nazionale con partite europee |
| Tiri e gol attesi, se disponibili | Un input meno rumoroso dei gol stessi | Mescolare dati di due provider con definizioni diverse |
| Il prezzo che avresti potuto prendere | Trasforma una previsione in una scommessa testabile | Salvare il prezzo di oggi e fingere che fosse disponibile allora |
Due stagioni di una divisione sono sufficienti per costruire il modello e un'altra per testarlo. I gol sono rumorosi — una squadra può giocare bene e perdere 0-1 — ecco perché gli input basati sulle occasioni aiutano una volta che la versione base funziona: vedi gol attesi spiegati e l'elenco più ampio di statistiche che prevedono i risultati.
Il modello base in tre passaggi
Passo uno — il livello della lega stessa. Supponiamo che la divisione abbia giocato 240 partite producendo 612 gol: 2,55 a partita. Le squadre di casa ne hanno segnati 336 e quelle in trasferta 276, quindi la base per la casa è 336 ÷ 240 = 1,40 e la base per la trasferta è 276 ÷ 240 = 1,15. Questi due numeri contengono già il fattore campo, misurato e non ipotizzato.
Passo due — quattro rapporti. Per la squadra di casa, dividi i gol segnati per partita in casa per 1,40 e i gol subiti per partita in casa per 1,15. Per gli ospiti, dividi i gol segnati in trasferta per 1,15 e i gol subiti in trasferta per 1,40. Un rapporto di 1,00 significa esattamente nella media in quel compito.
Passo tre — due valori di gol attesi. Moltiplica, mai sommare. Supponiamo che la squadra di casa abbia un rapporto di 1,30 in attacco in casa e gli ospiti 0,91 in difesa in trasferta; il valore per la casa è 1,40 × 1,30 × 0,91 = 1,65. Se gli ospiti hanno 1,05 in attacco in trasferta e i padroni di casa 0,87 in difesa in casa, il valore per la trasferta è 1,15 × 1,05 × 0,87 = 1,05.
La griglia dei risultati, e cosa ne esce
I conteggi dei gol seguono una forma di Poisson abbastanza fedele da poter valutare: la probabilità di esattamente k gol quando μ sono attesi è e−μ × μk ÷ k fattoriale, la formula illustrata nella guida alle linee Under/Over. Per μ = 1,65 le probabilità della squadra di casa per 0, 1, 2, 3 e 4 gol sono 19,2%, 31,7%, 26,1%, 14,4% e 5,9%. Per μ = 1,05 le probabilità degli ospiti sono 35,0%, 36,7%, 19,3%, 6,8% e 1,8%.
Moltiplica ogni valore della casa per ogni valore degli ospiti e ottieni la griglia. I valori sono percentuali; le righe sono i gol in casa, le colonne i gol in trasferta.
| Casa / Trasferta | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| 0 | 6,72 | 7,06 | 3,70 | 1,30 | 0,34 |
| 1 | 11,09 | 11,64 | 6,11 | 2,14 | 0,56 |
| 2 | 9,15 | 9,61 | 5,04 | 1,77 | 0,46 |
| 3 | 5,03 | 5,28 | 2,77 | 0,97 | 0,25 |
| 4 | 2,08 | 2,18 | 1,14 | 0,40 | 0,11 |
Queste venticinque celle coprono il 96,9% degli esiti, quindi calcola fino a otto o dieci gol prima di sommare. Ogni mercato è poi una somma di celle: sotto la diagonale è una vittoria in casa, la diagonale un pareggio, sopra la diagonale una vittoria fuori casa.
Sommando l'intera griglia si ottiene 51,4% casa, 24,5% pareggio e 24,1% fuori casa. Le quote eque sono i reciproci: 1 ÷ 0,514 = 1,95, 1 ÷ 0,245 = 4,08, 1 ÷ 0,241 = 4,14. La stessa griglia dice che entrambe le squadre segnano il 52,5% delle volte (quota equa 1,90) e che tre o più gol arrivano il 50,6% delle volte (quota equa 1,97), quindi un solo calcolo valuta l'intera partita.
Esempio. Il coupon mostra 1,85 / 3,60 / 4,40. Convertendo in percentuali si ottiene 54,1% + 27,8% + 22,7% = 104,6%, quindi il libro porta un margine del 4,6% — il metodo è spiegato in convertire le quote in probabilità. Rispetto alla tua griglia, il prezzo della casa è caro: 0,514 × 1,85 − 1 = −4,9%, un passo. Il prezzo della trasferta no: 0,241 × 4,40 − 1 = +6,0%, che su una scommessa di 5 € è 0,30 € di valore atteso. Su quaranta scommesse di questo tipo a 5 € — 200 € puntati — si tratta di circa 12 €, in una sequenza molto irregolare.
Correzioni che vale la pena aggiungere, in ordine
- Ponderazione per la recenticità. Una partita dello scorso ottobre non dovrebbe contare quanto una di marzo. Pesa ogni partita con un fattore di decadimento — dimezzare ogni trenta partite circa è un buon inizio — piuttosto che un taglio netto a dieci partite.
- Contrazione per campioni piccoli. Una squadra promossa con sei partite non dovrebbe portare un rapporto di attacco di 1,60. Con k partite e una costante di 10, prendi k ÷ (k + 10) del rapporto grezzo e il resto dalla media della lega.
- Correzione per i punteggi bassi. Il Poisson indipendente sottostima leggermente 0-0 e 1-1 e sovrastima 1-0 e 0-1, perché in una partita reale i due punteggi non sono indipendenti. Ritoccare queste quattro celle è il primo raffinamento standard.
- Divisione per competizione. Le partite di coppa, le partite ininfluenti e quelle europee si comportano diversamente: modellale separatamente o escludile.
- Override manuali, con parsimonia. Un titolare assente confermato (attaccante o portiere) merita un aggiustamento. Due override per partita è un modello con un assistente; dieci è una persona che indovina con passaggi extra.
Backtesting senza look-ahead bias
Il look-ahead bias è qualsiasi informazione nel tuo test che non avresti avuto al momento della scommessa. È silenzioso, lusinga sempre, ed è il motivo per cui la maggior parte dei modelli fatti in casa sembra eccellente sui dati storici e perde soldi in tempo reale.
| Scorciatoia | Cosa perde | Effetto sul risultato |
|---|---|---|
| Valutazioni costruite sull'intera stagione | Il risultato della partita che stai valutando | Lusinga pesantemente; il modello conosce a metà la risposta |
| Testare sugli stessi dati usati per scegliere le soglie | La tua stessa retrospettiva su quali regole hanno funzionato | Ogni soglia sembra ottimale |
| Usare i prezzi di chiusura come prezzo preso | Informazioni arrivate dopo la tua scommessa | Sovrastima il margine, poiché i prezzi di chiusura sono più affilati |
| Eliminare le partite con dati mancanti | Di solito le partite sospese e strane | Rimuove esattamente i risultati che fanno male |
| Ordinare per giornata invece che per ora di calcio d'inizio | Partite rinviate giocate dopo | Piccolo ma sistematico, e sempre a tuo favore |
La cura è il test walk-forward. Ordina ogni partita per ora di calcio d'inizio; per ogni partita ricostruisci le valutazioni dalle partite terminate prima, valutala, registra la scommessa che la regola avrebbe piazzato e il prezzo disponibile in quel momento, e vai avanti. Tieni una stagione intatta finché il modello non è definitivo, e tratta il primo risultato come quello reale.
Importante. Conta ogni scommessa generata dalla regola, incluse quelle da cui ti saresti tirato indietro. Un backtest che esclude silenziosamente le partite non è un test del modello, ma della tua memoria, e la stessa disciplina si applica al registro delle tue scommesse reali — vedi tracciamento delle scommesse.
Calibrazione: le percentuali sono oneste?
Il profitto è una misura lenta e rumorosa di un modello. La precisione è più veloce: prendi la probabilità che hai dato, sottrai 1 se l'evento si è verificato e 0 altrimenti, e eleva al quadrato la differenza. Più basso è meglio, e la tua media può essere confrontata direttamente con quella del mercato.
| Partita | Modello | Mercato | Risultato | Errore² modello | Errore² mercato |
|---|---|---|---|---|---|
| 1 | 55% | 50% | Vinta | 0,2025 | 0,2500 |
| 2 | 40% | 45% | Persa | 0,1600 | 0,2025 |
| 3 | 62% | 58% | Vinta | 0,1444 | 0,1764 |
| 4 | 30% | 35% | Persa | 0,0900 | 0,1225 |
| 5 | 48% | 52% | Vinta | 0,2704 | 0,2304 |
| 6 | 25% | 22% | Persa | 0,0625 | 0,0484 |
Il totale del modello è 0,9298 su sei partite, una media di 0,155; quello del mercato è 1,0302, una media di 0,172. In questo pugno di partite il modello è più preciso — e sei partite non decidono nulla, che è il punto. Quanto tempo serve davvero per un verdetto è spiegato in varianza e dimensione del campione.
Esegui la stessa misura anche per fasce. Se tutto ciò che valuti al 60% vince circa il 60% delle volte, il modello è calibrato; se la fascia di confidenza rende costantemente meno, le valutazioni sono forzate.
Quando un modello non vale la pena di essere costruito
Conta le ore onestamente: quaranta per costruire una prima versione, poi due o tre alla settimana per tenere aggiornati i dati. Supponiamo che produca venti scommesse qualificate a settimana a 5 € con un margine reale del 3%. Sono 20 × 5 € = 100 € di giro e 3 € a settimana di valore atteso — circa 1 € l'ora di manutenzione, prima di un singolo mese in perdita.
Tre cose lo rendono peggiore: mercati che non puoi modellare, dove i tuoi dati sono più sottili di quelli dell'operatore; leghe sotto forte attenzione professionale, dove il prezzo contiene già ciò che la tua griglia sa; e il successo stesso, perché un conto che continua a battere il prezzo vede tagliare le puntate — vedi conti limitati.
Un modello vale la pena di essere costruito se vuoi un numero con cui discutere piuttosto che una sensazione, e puoi accettare che il suo prodotto principale siano i rifiuti. Per l'output senza la manutenzione, l'analisi strutturata delle singole partite ti porta gran parte della strada — vedi come analizzare una partita e le divisioni sulla pagina dei tornei.
FAQ
Servono competenze di programmazione per costruirlo?
No per la versione sopra. Un foglio di calcolo con una riga per partita, quattro valutazioni per club e una griglia di venticinque celle fa tutto ciò che è descritto qui. Il codice diventa necessario per il test walk-forward su più stagioni, perché ricostruire le valutazioni a mano prima di ogni partita è impraticabile.
Perché il modello è così spesso in disaccordo con il mercato?
Di solito perché manca informazioni piuttosto che perché trova valore. Assenze, cambio di allenatore, campo neutro e turnover prima di una partita di coppa sono tutti nel prezzo e nessuno nella griglia. Tratta un grande divario come un invito a controllare gli input, e passa oltre quando non puoi spiegare da dove viene.
Dovrei usare i gol attesi invece dei gol reali come input?
Una volta che la versione base funziona, sì. I gol sono un campione piccolo di un processo rumoroso e la qualità delle occasioni si stabilizza più velocemente, quindi le valutazioni basate sui gol attesi si muovono meno su un punteggio anomalo. Esegui entrambe per una stagione e confronta i loro errori quadratici prima di cambiare.
Quanta storia dovrebbero usare le valutazioni?
Circa una stagione e mezza con decadimento, piuttosto che una finestra fissa. Troppo breve e un 4-0 riscrive una valutazione; troppo lungo e stai descrivendo una squadra che non esiste più. Stringi verso la media della lega ogni volta che meno di otto partite nel luogo rilevante supportano un valore.
Questo articolo è solo a scopo informativo e non costituisce un invito al gioco d'azzardo. Le scommesse comportano il rischio di perdere denaro — non puntare mai più di quanto puoi permetterti di perdere. 18+. Se il gioco smette di essere un intrattenimento, leggi la nostra guida al gioco responsabile e cerca aiuto.