Metodika výpočtu EloST (Elo-stolní-tenis)

Verze 5.0.4, 15. 5. 2018

Obecný popis

EloST pracuje s daty soutěží ČAST od sezóny 2011/2012. Pro úvodní nastavení bylo využito iterační metody, která je založena na obdobných principech, jako zde popsána průběžná metoda výpočtu. Následně je propočítán vývoj Elo na datech od sezóny 2011/12 průběžnou metodou, která je definována níže. V současnosti se načítají každou hodinu nově odehrané zápasy a okamžitě jsou převáděny do aktuálních Elo výsledků.

Stručný princip

Elo rozdíl koeficientů soupeřů určuje pravděpodobnost výsledku. Pokud výsledek odpovídá očekávání, tak se Elo hráčů nemění. V opačném případě se Elo mění tím více, čím dále byl výsledek od původního předpokladu. Srdce algoritmu je právě funkce, která určuje na základě rozdílů Elo soupeřů pravděpodobnost výsledku zápasu. Rozložení pravděpodobnosti je vidět na níže uvedeném grafu, přičemž červená křivka je rozložení používané u standardního algoritmu Elo a modrá křivka je rozložení, které je používáno naším algoritmem EloST a které lépe odpovídá systému soutěží stolního tenisu v ČR.
rozložení pravděpodobnosti EloST
Na ose y je pravděpodobnost výhry v procentech a na ose x je Elo rozdíl obou hráčů.

Například pokud je Elo rozdíl soupeřů 150 je předpoklad výhry hráče s vyšším Elo okolo 90%, pokud skutečně vyhraje, stoupne mu koeficient jen nepatrně, pokud prohraje sníží se daleko výrazněji.

Od verze 4.0 se křivka rozdělení Elo bodů liší od pravděpodobnostní křivky. Pokud skončí zápas překvapivým výsledkem, není již počet rozdělovaných Elo bodů omezen. Dochází tak například k rychlejšímu nastavení správných hodnot u nových hráčů v sytému. Zároveň došlo ke snížení přidělování Elo bodů v případě, kdy se utkají vyrovnaní hráči, takže vývoj Elo není tolik rozkmitaný.
Porovnání rozdělení Elo bodů je v níže uvedeném grafu.
porovnání rozdělení Elo v3 a v5
Rozdělení do verze 3.1 je reprezentováno modrou křivkou, od verze 5.0 odpovídá rozdělení červené křivce.

Základní vzorec bez doplňujících vah a koeficientů, které budou popsány níže, vypadá následovně:
vzorec EloST základni
vzorec EloST základni, substituce 1
vzorec EloST základni, substituce 2
Přičemž, Sh je skóre hráče v intervalu <0,1>; Eh a Es jsou Elo hráče a soupeře; Ehn je výsledné Elo hráče; definice a nastavení konstant k_ naleznete níže.

Elo(trend)

Pro více vypovídající finální žebříčky na konci sezóny byl zaveden doplňkový ukazatel Elo(trend), který vychází z vývoje hráče za poslední rok a který vyhlazuje vývoj Elo, takže například několik proher v posledních zápasech sezóny nebude mít velký vliv na výslednou hodnotu ukazatele. Blížší info: Elo(trend) - lineární regrese a klouzavý průměr.

Hlavní rozdíly mezi verzemi

  • verze 5.0.3 (1.5.2018) -> verze 5.0.4 (15.5.2018)
    • Oprava chyby v algoritmu a zavedení konstanty wrk, obě změny ovlivňují pouze nováčky v žebříčku.
  • verze 5.0.2 (12.4.2018) -> verze 5.0.3 (1.5.2018)
    • Oprava chyby při importu kontumaci ze STISu.
  • verze 5.0.1 (5.4.2018) -> verze 5.0.2 (12.4.2018)
  • verze 5.0.0 (2.4.2018) -> verze 5.0.1 (5.4.2018)
    • Vzhledem k nevhodnému načasování změny Elo(trend) na konci sezóny a na základě konzultací se zástupci oddílů i zástupci ČAST bylo přistoupeno k návratu k původní verzi algoritmu pro výpočet Elo(trend).
    • Pro výpočet hodnoty změny použité v žebříčku Skokan roku byla zaveden podmínka Elomax - Elo <= Rmax, viz níže
  • verze 4.0.1 (10.1.2018) -> verze 5.0.0 (28.3.2018)
    • Zavedení intervalu spolehlivosti Elomax, Elomin
    • Díky intervalu spolehlivosti, mohou začínat noví hráči s hodnotou Elo = 1
    • Prodloužení období pro iterační metodu do 31.12.2017
    • Odstranění závislosti výpočtu Elo na věku hráčů
    • Odstranění závislosti výpočtu Elo na počtu odehraných utkání
    • Změna výpočtu Elo(trend), viz Elo(trend)
  • verze 4.0.0 (30.11.2018) -> verze 4.0.1 (10.1.2018)
    • Oprava drobné chyby při zpracování pořadí zápasů. Chyba se projevovala u hráčů, kteří odehráli málo zápasů (méně než 15) a zároveň hráli dvě utkání v jeden den.
  • verze 3.1.1 (15.9.2017) -> verze 4.0.0 (30.11.2017)
    • Přepracování hlavního vzorce:
      • rychlejší vývoj nových hráčů v systému
      • hladší průběh vývoje Elo, díky snížení koeficientu kr
    • Změna koeficientů:
      • kr = 12 (bylo 16)
      • wc = 5 (bylo 8)
      • wr = 2.5 (bylo 2)
ukázat i starší změny

Definice pojmů a symbolů

Elo - hlavní bodová hodnota vyjadřující výkonost hráče
Elomin, Elomax - interval spolehlivosti bodové hodnoty
Eh - Elo nebo Elomin nebo Elomax hráče
Ehn - nově vypočtená hodnota Elo neboElomin nebo Elomax hráče
Es - pokud hráč vyhraje Es = Elomin soupeře; pokud hráč prohraje Es = Elomax soupeře
Ehs - pokud hráč vyhraje Ehs = Elomax; pokud hráč prohraje Ehs = Elomin
Er - rozdíl Elo mezi soupeři: Es - Eh
Ers - substtuční proměnná, definice viz vzorec Eb - balanční korekce Elo (u nových hráčů dochází k rychlejšímu rozvoji Elo a vzhledem k tomu, že statisticky větší procento hráčů nově vstupujících do systému své úvodní zápasy prohrává, dochází v průměru všech hráčů k vychýlení Elo od výchozí hodnoty, v zájmu zachování rovnováhy byla zavedena drobná úprava před každým výpočtem nového Elo ve formě Eb ve velikosti, která je přímo úměrná rozdílu (Ev - průměr Elo všech aktivních hráčů), změně Elo a nepřímo úměrná počtu zápasů hráče za rok; viz Balanční korekce
kr - konstanta rozvoje (konstanta ovlivňuje rychlost změn u předpokládaných výsledků nebo výsledků vyrovnaných soupeřů)
ks - konstanta sklonu (konstanta ovlivňuje rychlost změn u překvapivých výsledků)
km - konstanta maximálního sklonu (konstanta určuje maximální rychlost změn u velmi překvapivých výsledků)
kp - konstanta rozpětí (konstanta ovlivňuje velikost změny Elo v závislosti na výsledku a rozdílu vstupního Elo jednotlivých hráčů; viz 2. bod v sekci "postup výpočtu")
kk - konstanta kontrakce (konstanta ovlivňuje rychlost přibližování pravděpodobnosti k hraničním hodnotám 0% a 100% u zápasů hráčů s velmi odlišným Elo)
ws - váha sklonu (v závislosti na rozdílu intervalu spolehlivosti se může hráč s širším intervalem vyvíjet rychleji)
wr - rozdíl intervalu spolehlivosti wr = Elomax - Elomin - (Elomaxsoupeře - Elominsoupeře); pokud je wr > 225, pak je nastavená hodnota wr = 225
wrk - korekce rozdílu intervalu spolehlivosti wrk = (Elos - Elo) / (Elohs - Elo); pokud je wrk < 1, je nastavená hodnota wrk = 1
Sh a Ss - skóre hráče a soupeře převedené do intervalu <0,1> (1-výhra, 0-prohra)
Zr - počet hráčem odehraných zápasů za poslení rok (pokud je dnes 17.08.2018, pak od 17.08.2017 včetně)
Zrp - požadovaný počet odehraných zápasů za poslení rok, aby byl hráč aktivní
Zc - počet hráčem odehraných zápasů celkem od 1.7.2011
Zcp - požadovaný počet odehraných her celkem, aby byl hráč aktivní
Rmax - požadovaný maximální rozdíl Elo a Elomin

Nastavení konstant

kp = 400
kr = 12
ks = 50
km = 2.1
kk = 2.25
Zcp = 10
Zrp = 5
Rmax = 75
výchozí Elo pro nové hráče: Elo=1; Elomin=1; Elomax=2399

Postup výpočtu

Předpokládejme, že počítáme nové hodnoty Elo, Elomin, Elomax pro jednoho z hráčů po jednom zápase.
Vstupními daty zápasu je: výsledek na body.
Vstupními daty u hráče i soupeře jsou: Elo, Elomin, Elomax.

  1. vybereme správnou hodnotu Es:
    - v případě výhry hráče: Es = Elomin soupeře
    - v případě prohry hráče: Es = Elomax soupeře
  2. určíme váhu ws:
    - pokud je wr / wrk < 75, pak ws = 1
    - v ostatních případech je ws = 1+9*((wr/wrk-75)/225)^2
  3. je vypočteno nové Elo nebo Elomin nebo Elomax hráče:
    vzorec EloST
    vzorec EloST, substituce 1
    vzorec EloST, substituce 2
  4. k výsledku přičteme balanční koeficient Eb (viz Balanční korekce) a výsledek zaokrouhlíme na celé číslo.
  5. bod 3. a 4. zopakujeme pro Elo, Elomin i Elomax.

Zařazení do žebříčku

Po propočtení všech zápasů dochází k určení, zda je hráč aktivní a tudíž zařazený do hlavního žebříčku. Aby byl hráč aktivní musí splnit tyto podmínky:
  • Zc >= Zcp
  • Zr >= Zrp
  • Elo - Elomin <= Rmax

Výpočet hodnoty zmeny za rok (Skokan roku)

Pro výpočet hodnoty změny hráče za poslední rok je použito Elo, které bylo platné přesně před rokem, pokud ale v té době nebyla splněna níže uvedená podmínka, je použita první možná hodnota mladší než rok, u které byla podmínka splněna.
  • Elomax - Elo <= Rmax

Závěr

Tímto postupem se zpracovávají všechny zápasy a hráči. Systém načítá ze STISu nová potvrzená utkání jednou za hodinu a zpracovává je proto v pořadí, tak jak se postupně objevují ve výsledkovém servisu. Jednou týdně dochází ke kompletnímu přepočítávání všech zápasů, čímž jsou zohledněny případné dodatečné změny ve výsledcích a také je opraveno pořadí zápasů, pokud se stane, že pozdější zápas se objeví na STISu dříve. Kontumované zápasy nejsou do výpočtů zařazeny.

Systém Elo dává dobré výsledky v případě, kdy se hráči utkávají často mezi sebou navzájem, napříč oblastmi a kluby. Kdyby byly všechny zápasy odehrány v izolovaných skupinách nedávaly by hodnoty příliš smysl. Soutěže ČAST jsou naštěstí dostatečně provázány hráči, kteří nastupují ve více soutěžích najednou. Tímto způsobem vlastně hráči předávají svými výkony potřebné informace napříč všemi soutěžemi.

Hráči k porovnání:
0
porovnat hráčevyčistit porovnání