Każda drużyna ma siłę ataku i obrony
Model hierarchiczny szacuje dla każdego klubu dwie liczby: ile goli potrafi strzelić i ile zwykle traci. Szacunki dla klubów w jednej lidze „pożyczają” sobie nawzajem informację, więc drużyna po czterech kolejkach nie dostaje skrajnej oceny na podstawie jednego wysokiego zwycięstwa. W modelu siedzą też: poziom rozgrywek (IV liga, okręgówka, A i B klasa), sezony oraz przewaga gospodarza. Mecze pucharowe między poziomami są dla modelu szczególnie cenne — to one kalibrują różnicę między ligami.
Gole to proces losowy
Z siły ataku jednej drużyny i obrony drugiej wychodzi oczekiwana liczba goli dla obu stron (to prognoza modelu, nie „xG” liczone ze strzałów w rozegranym meczu). Same gole model traktuje jako proces Poissona: przy oczekiwanych 1,8 gola czasem padnie jeden, czasem cztery. Z rozkładu wszystkich możliwych wyników bierze się i prawdopodobieństwo 1 / X / 2, i szansa na konkretny rezultat (te „najbardziej prawdopodobne wyniki” na stronach meczów), i macierz wyników. Te liczby nie są losowane: dla każdego z kilku tysięcy wariantów siły drużyn, jakie dopuszcza model, liczymy dokładne prawdopodobieństwa wyników i bierzemy z nich średnią. Ten sam model daje więc zawsze te same procenty, a zmiana prognozy z dnia na dzień oznacza, że model zobaczył nowe wyniki.
2000 symulacji reszty sezonu
Każdy nierozegrany mecz jest losowany z rozkładu z kroku 2 — i tak 2000 razy dla całego sezonu. Za każdym razem powstaje inna końcowa tabela. Licząc, jak często drużyna kończy na danym miejscu, dostajemy prognozę punktów z przedziałem, prawdopodobieństwo mistrzostwa i spadku oraz heatmapę pozycji.
Kolejność w tabeli
Przy równej liczbie punktów o miejscu decydują kolejno: mecze bezpośrednie (punkty, potem bilans bramek w tych meczach — ale dopiero gdy wszystkie mecze między tymi drużynami zostały rozegrane), bilans bramek, bramki strzelone, liczba zwycięstw i zwycięstw na wyjeździe. Przy trzech i więcej drużynach z równą liczbą punktów liczy się mała tabela meczów między nimi. Tak układamy i bieżącą tabelę, i każdą z symulowanych tabel końcowych. To zasady z regulaminu rozgrywek WMZPN (§ 50).
Skąd dane i kiedy zmieniają się prognozy
Wyniki i terminarze pobieramy ze strony Warmińsko-Mazurskiego ZPN. Stronę przeliczamy każdego ranka: dochodzą nowe wyniki, model uczy się od nowa, a prognozy nierozegranych meczów są aktualizowane aż do godziny rozpoczęcia meczu. Przy każdej prognozie podajemy, kiedy powstała. Po pierwszym gwizdku prognoza już się nie zmienia — zostaje ostatnia wersja sprzed meczu i to z nią porównujemy wynik.
Czego model nie wie
- Kontuzji i zawieszeń — brak najlepszego napastnika nie zmienia prognozy.
- Składów — model nie widzi wyjściowej jedenastki ani rotacji przed pucharem.
- Pogody i boiska — ulewa, wiatr i grząska murawa obniżają liczbę goli, model tego nie uwzględnia.
- Motywacji — meczów o wszystko, meczów o nic i spraw pozaboiskowych.
- Transferów w trakcie okienka — nowy zespół widzi dopiero po wynikach.
Dlatego prawdopodobieństwo 80% nie znaczy „pewne”. Znaczy, że na dłuższą metę mniej więcej co piąty taki mecz kończy się inaczej — i tak też należy czytać każdą liczbę na tej stronie.
Uczciwość
Nie ukrywamy pomyłek. Na stronie każdej kolejki widać, ile typów model trafił, a ile spudłował; na stronie drużyny — jakie prawdopodobieństwo dawał temu, co faktycznie się wydarzyło, mecz po meczu. Prognoza rozegranego meczu nie jest zmieniana: to ostatnia wersja opublikowana przed pierwszym gwizdkiem. Dla meczów rozegranych przed startem strony pokazujemy prognozy modelu wytrenowanego wyłącznie na meczach sprzed danej kolejki (walk-forward), więc model nigdy nie „zna” wyniku, który prognozuje.
Stan danych: 17 października. Model wytrenowany 18 października na 4606 meczach.
Nie jesteśmy stroną bukmacherską
Strona nie jest związana z PZPN, wojewódzkimi związkami piłki nożnej ani żadnym bukmacherem. Nie publikujemy kursów, nie odsyłamy do operatorów zakładów i nie doradzamy typowania. To projekt statystyczny: interesuje nas, jak dobrze model opisuje regionalną piłkę i gdzie się myli. Liczby traktuj jak prognozę pogody — jako opis niepewności, nie jako zapowiedź wyniku.