Jak model funguje
Data
Výsledky a soupisky (kdo v kterém zápase nastoupil) se stahují z webu malyfotbalbrno.cz, a to nejen pro letošní 6. ligu, ale i pro 5 předchozích sezón všech mužských lig od 1. do 7. Stránka se jednou týdně vygeneruje znovu a odhady se přepočítají.
Výchozí odhad z minulých sezón
Na začátku sezóny o týmech letos nic nevíme, ale víme, jak hrály loni. Z týmů, které postoupily nebo sestoupily, model odhadl, že sousední ligy se liší asi o 10 % gólů. Loňská síla se navíc přenáší jen částečně (asi z 45 %): týmy se mezi sezónami mění. Nové týmy dostanou průměr, jakého nové týmy v minulosti dosahovaly.
Jak sezóna běží, výchozí odhad bere čím dál víc v úvahu i to, kdo za tým skutečně hraje: u každého hráče, jak silný byl loni jeho tým, i ve vyšší lize. Tým poskládaný z hráčů první ligy tak začne výš, i když je v soutěži nový.
Model gólů
Síla týmů se odhaduje z letošních zápasů, ale stahuje se k výchozímu odhadu (ridge regrese). Po pár kolech tak rozhoduje hlavně historie, ke konci sezóny hlavně letošní výsledky.
Góly v malém fotbale kolísají zhruba dvakrát víc, než předpokládá obvyklé Poissonovo rozdělení (malé kádry, střídání sestav). Model proto používá negativně binomické rozdělení se stejným průměrem. S Poissonem byl model příliš sebejistý: když favoritovi dával 90 %, vyhrál jen asi v 80 % případů.
Simulace sezóny
Zbývající zápasy podle skutečného rozpisu odsimuluji 6 000 krát. Aby se do pořadí přenesla i nejistota v odhadu síly týmů, model se 150krát přepočítá na náhodně vybraných odehraných zápasech (bootstrap). Z výsledků plynou pravděpodobnosti postupu a sestupu.
Do postupu a sestupu počítám i baráž. Protože nemám data z minulých baráží, jsou její šance jen odhad: 40 % pro postupující tým a 55 % pro záchranu.
Funguje to?
Model jsem vyzkoušel na minulých sezónách 4. až 7. ligy: každý zápas předpověděl jen z toho, co se odehrálo dříve. Nastavení jsem ladil na sezónách 2022/23 a 2023/24 a ověřil na 913 zápasech let 2024/25 až 2026/27, které ladění nikdy neviděly. Log-loss (nižší je lepší): tento model 0,874, původní verze 0,897, prosté sazby výhra/remíza/prohra 0,967.
Letošní sezóna stejným způsobem (48 zápasů):
| Model | Log-loss | Brier | Trefený výsledek |
|---|---|---|---|
| Tento model | 0,877 | 0,529 | 56 % |
| Totéž bez minulých sezón | 0,873 | 0,525 | 62 % |
| Základ: průměrné sazby lig | 0,902 | 0,562 | 44 % |
Co model neumí
- Kdo na zápas přijde. Počet hráčů a účast opor jsem zkoušel, ale předpovědi nezlepšily: dopředu se odhadnout nedají a vliv je malý (asi +0,2 gólu za každého hráče navíc).
- Kvalitu jednotlivých hráčů. Hráč je ohodnocen jen podle toho, jak silný byl loni jeho tým.
- Zranění, tresty a dovolené.
- Vývoj během sezóny. Rozsahy bodů jsou proto spíš užší, než by měly být: v minulých sezónách se do 80 % rozsahu vešly jen asi dvě třetiny týmů.