Predikční Model ~ Český Mistr
Pravděpodobnosti konkrétního bodového zisku týmu, jeho šance na titul, sestup, nebo účast v evropských pohárech pocházejí z Monte Carlo simulace zbytku ligové sezóny.
Soutěž je ze současného známého stavu virtuálně 100 000x dohrána na základě podkladového pravděpodobnostního modelu využívajícího strojové učení a elo rating system. Snahou je soutěž simulovat co nejvěrohodněji. To pro nasazení do evropských pohárů obnáší i znalost vítěze ligového poháru. Ten je tak součástí simulace, a to včetně všech zákonitostí losu jednotlivých kol. Simulována je i druhá liga.
Zápasové pravděpodobnosti
Pro simulaci celé soutěže je nutné odhadnout pravděpodobnostní rozdělení výsledku jednotlivých zápasů.
Z takto odhadnutého pravděpodobnostního rozdělení je v každém kole simulace (100 000) náhodně vylosován vítěz zápasu, nebo remíza.
Na obrázku je ukázkové pravděpodobnostní rozdělení pro výhru domácího týmu, remízu a výhru hostů v závislosti na rozdílu v ratingu zúčastněných týmů. V jádru je elo rating vyvinutý původně pro hodnocení šachistů – konkrétní specifikace a úpravy jsou popsány níže.
K vyhlazení pravděpodobnostní křivky je použitý model logistické regrese s kubickým splinem o pěti stupních volnosti vážený četností pozorovaných hodnot.
Stejný model v poissonovské variaci je použitý pro odhad skóre zápasu.
Elo rating
Na ose x Obrázku 1 je hodnota tzv. elo rovnice
xres = 1/(1+10**(-(elo_diff + hga)/400)),
kde
elo_diff = elo_home - elo_away
a hga výhoda domácího prostředí. elo_home a elo_away jsou bodovým elo ratingem domácího a hostujícího týmu.
Aktualizace ratingu
Rating týmů je aktualizován po každém zápase podle vzorce
elo_exchange = K * (res - xres) * GD,
kde K pro 1. ligu je 18,75 a pro 2. ligu 28,75. Hodnota res nabývá hodnoty {1, 0,5, 0} podle toho, zda tým vedený jako domácí vyhrál, remizoval, nebo prohrál. GD je koeficient pro zohlednění skóre zápasu. Hodnota K je pro nižší soutěž vyšší, jelikož je v ní větší fluktuace týmů a vyšší hodnota K na to dokáže rychleji reagovat.
Funkce zohlednění rozdílu ve skóre na obrázku roste stále pomaleji. Každý dodatečný gól rozdílu má menší váhu, neboť rozdíl výhry 7:0 a 8:0 nenese takovou informaci o rozdílu v převaze týmu jako např. dodatečný gól z 1:0 na 2:0.
Výhoda domácího prostředí
Výhoda domácího hřiště hga je nastavena tak, aby se s časem mohla vyvíjet. Její funkcí je reagovat na to, že domácí týmy typicky dosahují lepších výsledků a zahrnout to věrohodně do výpočtu.
Na konci každého hracího dne se sečte elo_exchange domácích týmů a hga se aktualizuje podle vzorce
hga = hga + sum(elo_exchange) * c,
kde c = 0,019. Pokud tým nehraje na svém hřišti, výhoda domácího prostředí se nezapočítává.
Automatická korekce (nad/pod)hodnocené elo kvality týmu
V algoritmu je zahrnuta automatická kontrola, zda dlouhodobě nedochází k nadhodnocení/podhodnocení kvality týmu vyjádřené elo ratingem (např. po výrazném posílení/rozprodání kádru).
Pro očekávané výsledky týmu je formulován interval spolehlivosti
xres_bounds = xres_mean ± sqrt(xres_mean * (1 - xres_mean) / 36) * 2.108,
kde xres_mean je průměr xres za posledních 36 zápasů a 2.108 odpovídá z-score pro p-hodnotu 0.035.
Pokud tým interval opustí, je pomocí inverzní funkce k elo rovnici xres
elo_diff = -400 * log10((1-xres)/xres)
vyjádřena hodnota elo, o který je rating týmu vyšší/nižší než povolený interval. Např. pokud tým dosahoval horších výsledků (rating je příliš vysoký)
decrease_diff = [-400 * log10((1-xres_lb)/xres_lb)] - [-400 * log10((1-res_mean)/res_mean)],
kde xres_lb je dolní hodnota intervalu spolehlivosti a res_mean je průměr reálně dosažených výsledků res.
Aby nedošlo ke změně průměru elo ratingu napříč týmy, je rating všem týmům, se kterými se tým, jehož rating je přepočítán, ve sledovaném období 36 zápasů utkal (i jemu samému), navýšen o decrease_diff / počet týmů.
Počáteční elo hodnoty
Výpočet probíhá ve 2 krocích
1. zjištění průměrného elo v soutěži,
2. určení elo jednotlivých týmů.
Zjištění průměrného elo v soutěži
1. Určení výpočetních konstant, úvodní hodnoty hga a průměrného elo napříč soutěžemi.
K = 20; c = 0,075; hga = 75; elo = 1 500.
2. Počítej elo pro prvních 6 sezón.
3. Zjisti hga a průměrné elo uvnitř soutěží v poslední spočtené sezóně (1998/99).
4. Použij zjištěné elo a hga jako počáteční hodnoty pro týmy uvnitř této soutěže v první sezóně (1993/94) a opakuj body 2. až 4., dokud je Manhattanská vzdálenost počátečních hodnot týmů dvou po sobě jdoucích iterací větší než 20.
Určení elo jednotlivých týmů
1. Použij výsledky z předchozího bodu a spočítej elo pro prvních 55 % zápasů první sezóny.
2. Získané elo hodnoty jednotlivých týmů použij jako jejich počáteční hodnoty.
Elo postupujících týmů
Přesuny mezi první a druhou ligou jsou bezproblémové, týmy si svoje hodnocení přenášejí do nové soutěže. Týmům postupujícím do 2. ligy je vždy přiřazeno průměrné elo týmů, které se ve skončené sezóně umístily na posledních 3 místech tabulky.
Nastavení elo parametrů
Pro každý prvek elo modelu byla vyzkoušena škála různých parametrů. I v rámci jednotlivých prvků byly zkoušeny různé možnosti. Např. u výhody domácího prostředí bylo ověřeno, že využití individuálního hga pro konkrétní tým nepřinese do modelu zpřesnění.
Výsledné nastavení je takové, které nejlépe predikuje samotné zápasy. Kvalita předpovědí byla posuzována pomocí RPS (Ranked Probability Score).