Sprawdzenie modelu — gdzie się myli i jak go poprawić
Bierzemy gole które piłkarze faktycznie strzelili w sezonie 25/26 i porównujemy z tym co model przewidywał. Sprawdzamy: gdzie był blisko, a gdzie się rozjechał. Z analizy wyrzucamy tylko kontuzjowanych — czyli tych co zagrali za mało meczów żeby cokolwiek o nich powiedzieć. Wszyscy inni (nawet ci co przeszli do mocniejszej ligi) zostają — model miał rok danych z nowego klubu, więc miał uczciwą szansę trafić.
Model jest zachowawczy — typowy gracz strzela o 6% więcej goli niż przewidywaliśmy.
← lista 26/27 · prognoza 25/26 vs rzeczywistość · metodologia
Kogo wyrzuciliśmy z analizy i dlaczego
| Powód | Liczba graczy | Przykłady |
|---|---|---|
| kontuzja (zagrał mniej niż 12 meczów w 25/26) | 40 | Alexander Isak, Romelu Lukaku, Tim Kleindienst, Chris Wood, Luuk de Jong... |
Wyrzucamy tylko kontuzjowanych — bo dla nich nie ma żadnego sygnału z 25/26. Wszyscy pozostali — łącznie z gośćmi co przeszli do mocniejszej ligi rok temu (np. Mbappé do Realu, Zirkzee do United) — zostają w analizie. Mieli pełny sezon 24/25 w nowym klubie, więc model miał wszystkie dane żeby ich ogarnąć. Po odrzuceniu zostaje 644 graczy.
Co model bierze pod uwagę i czy ma rację
Model dla każdego gracza nakłada kilka korekt: za wiek, za status w klubie, za siłę zespołu, za transfer. Tu sprawdzamy każdą korektę z osobna: porównujemy „o ile model zmienia prognozę" z „o ile faktycznie zmieniło się tempo strzelania".
Status w klubie — czy gracz to starter, rotator, czy ławka
Sprawdzamy minuty z sezonu 24/25. Jeśli ktoś grał ≥75% możliwych minut to "starter". Jeśli 35-55% to "rotacja". Patrzymy czy korekta którą model robi dla każdej grupy ma sens.
| Grupa | Ilu graczy | Co model zakłada | Co dane pokazują | Co z tym zrobić |
|---|---|---|---|---|
| średnio grający (55-75% minut) | 198 | bez zmian | -12% goli | model zawyża — ci gracze strzelają o ~12% mniej niż przewidujemy |
| pewny starter (≥75% minut) | 150 | +7% goli | -38% goli | model zawyża — ci gracze strzelają o ~45% mniej niż przewidujemy |
| rotacja (35-55% minut) | 58 | -18% goli | -8% goli | model zaniża — ci gracze strzelają o ~10% więcej niż przewidujemy |
| rezerwowy (20-35% minut) | 33 | -40% goli | +43% goli | model zaniża — ci gracze strzelają o ~83% więcej niż przewidujemy |
| głęboka ławka (<20% minut) | 2 | -60% goli | +91% goli | za mało graczy w tej grupie żeby coś wnioskować |
Wiek — jak rocznik wpływa na liczbę goli
Wiek liczony na sierpień 2025. Patrzymy czy nasza krzywa "starsi grają mniej" pasuje do rzeczywistości.
| Grupa | Ilu graczy | Co model zakłada | Co dane pokazują | Co z tym zrobić |
|---|---|---|---|---|
| 26-29 | 101 | bez zmian | -19% goli | model zawyża — ci gracze strzelają o ~19% mniej niż przewidujemy |
| 23-25 | 83 | bez zmian | -32% goli | model zawyża — ci gracze strzelają o ~32% mniej niż przewidujemy |
| ≤22 | 27 | +3% goli | bez zmian | OK — model dobrze trafia dla tej grupy |
| 31-32 | 22 | bez zmian | -26% goli | model zawyża — ci gracze strzelają o ~26% mniej niż przewidujemy |
| 35+ | 14 | -30% goli | -35% goli | OK — model dobrze trafia dla tej grupy |
| 33-34 | 13 | -9% goli | -40% goli | model zawyża — ci gracze strzelają o ~31% mniej niż przewidujemy |
| 30 | 12 | bez zmian | +11% goli | model zaniża — ci gracze strzelają o ~11% więcej niż przewidujemy |
Siła klubu — mocny klub vs słaby klub
Mierzymy siłę klubu jako: ile xG (oczekiwanych goli) klub stwarza w porównaniu ze średnią ligi. Mocny klub = ≥1.15× średniej. Słaby = poniżej 0.85×. Sprawdzamy czy nasz boost/kara dla zawodnika z takiego zespołu jest na właściwym poziomie.
| Grupa | Ilu graczy | Co model zakłada | Co dane pokazują | Co z tym zrobić |
|---|---|---|---|---|
| mocny (≥1.15) | 264 | +34% goli | -14% goli | model zawyża — ci gracze strzelają o ~48% mniej niż przewidujemy |
| dobry (1.0-1.15) | 79 | bez zmian | +32% goli | model zaniża — ci gracze strzelają o ~31% więcej niż przewidujemy |
| słaby (<0.85) | 41 | -24% goli | +6% goli | model zaniża — ci gracze strzelają o ~30% więcej niż przewidujemy |
| średni (0.85-1.0) | 9 | -8% goli | -14% goli | za mało graczy w tej grupie żeby coś wnioskować |
Zmiana klubu na inną ligę
Czy gracz między 23/24 a 24/25 zmienił ligę? Jeśli tak — czy szedł do mocniejszej, słabszej, czy podobnej? Sprawdzamy czy model dobrze koryguje prognozę dla każdego kierunku.
| Grupa | Ilu graczy | Co model zakłada | Co dane pokazują | Co z tym zrobić |
|---|---|---|---|---|
| został w tej samej lidze | 355 | bez zmian | -18% goli | model zawyża — ci gracze strzelają o ~18% mniej niż przewidujemy |
| przeszedł do mocniejszej ligi | 27 | -29% goli | -34% goli | OK — model dobrze trafia dla tej grupy |
| przeszedł do słabszej ligi | 18 | +17% goli | -10% goli | model zawyża — ci gracze strzelają o ~27% mniej niż przewidujemy |
| zmienił ligę (siła podobna) | 17 | -5% goli | -24% goli | model zawyża — ci gracze strzelają o ~19% mniej niż przewidujemy |
Co po sezonie z dużą liczbą goli
Jeśli ktoś w 24/25 strzelił dużo więcej niż w poprzednich latach (≥8 goli ponad swoje typowe tempo), to model zakłada że kolejny sezon będzie słabszy ("powrót do średniej"). Sprawdzamy o ile słabszy faktycznie był.
| Grupa | Ilu graczy | Co model zakłada | Co dane pokazują | Co z tym zrobić |
|---|---|---|---|---|
| bez wybuchu | 337 | bez zmian | -15% goli | model zawyża — ci gracze strzelają o ~15% mniej niż przewidujemy |
| wybuchowy sezon (8+ goli ponad zwykłe tempo) | 40 | -15% goli | -41% goli | model zawyża — ci gracze strzelają o ~26% mniej niż przewidujemy |
| ekstremalny wybuch (12+ goli ponad) | 32 | -20% goli | -51% goli | model zawyża — ci gracze strzelają o ~31% mniej niż przewidujemy |
zielone — model trafia (różnica do 6 punktów procentowych) · żółte — lekkie odchylenie (do 15 pp) · czerwone — duży rozjazd (15 pp +)
Wszyscy gracze na jednym wykresie
Każda kropka to gracz. Im bliżej przerywanej linii, tym lepsza prognoza. Kropka nad linią = gracz strzelił więcej niż przewidywaliśmy. Kropka pod linią = strzelił mniej. Najedź kursorem żeby zobaczyć kto to.
Największe pomyłki — gracze których model nie zrozumiał
To gracze z analizy — bez kontuzjowanych. Model miał wszystkie dane żeby trafić, a się rozjechał. To najlepsza lekcja co model jeszcze przeoczył. Czerwone wiersze = model przewidywał za dużo. Żółte = za mało.
| Gracz | Klub | Model przewidywał | Faktycznie strzelił | Różnica | Co model widział |
|---|---|---|---|---|---|
| Tolu Arokodare | KRC Genk | 29 | 3.2 | +25.8 | mocny klub, Liga Europy, wybuchowy sezon 24/25, pewny starter |
| Loïs Openda | RasenBallsport Leipzig | 25 | 1.1 | +23.9 | mocny klub, pewny starter |
| Paul Onuachu | Southampton | 1.2 | 24.6 | -23.4 | transfer do mocniejszej ligi(-40%), rezerwowy |
| Santiago Giménez | Feyenoord | 21.7 | 0 | +21.7 | mocny klub, Liga Mistrzów, karne floor +2.3 |
| Mohamed Salah | Liverpool | 27.6 | 6.7 | +20.9 | wiek 33, mocny klub, Liga Mistrzów, karne floor +6.8 |
| Tadeo Allende | Celta Vigo | 0 | 20.5 | -20.5 | mocny klub, Liga Europy, głęboka ławka |
| Maghnes Akliouche | Monaco | 28 | 7.6 | +20.5 | mocny klub, pewny starter |
| Alexandre Lacazette | Lyon | 31.9 | 12.1 | +19.8 | wiek 34, mocny klub, karne floor +4.6, pewny starter |
| Yoane Wissa | Brentford | 20.6 | 1.1 | +19.5 | mocny klub, wybuchowy sezon 24/25, pewny starter |
| Viktor Gyökeres | Sporting CP | 32.8 | 13.6 | +19.2 | mocny klub, Liga Mistrzów, karne floor +9.1, wybuchowy sezon 24/25 |
| Gonçalo Ramos | Paris Saint-Germain | 26.9 | 7.8 | +19.1 | mocny klub, Liga Mistrzów, karne floor +2.3 |
| Serhou Guirassy | Borussia Dortmund | 33.7 | 15.4 | +18.3 | mocny klub, Liga Mistrzów, karne floor +3.0, pewny starter |
| Morgan Guilavogui | St. Pauli | 19.3 | 1.1 | +18.2 | mocny klub, transfer do słabszej ligi(+11%), wybuchowy sezon 24/25 |
| Jamal Musiala | Bayern Munich | 23.4 | 5.5 | +17.9 | mocny klub, pewny starter |
| Victor Osimhen | Galatasaray | 32.7 | 15.2 | +17.5 | mocny klub, Liga Mistrzów, karne floor +4.6, transfer do słabszej ligi(+13%) |
| Odsonne Édouard | Crystal Palace,Leicester | 0.1 | 17.5 | -17.5 | głęboka ławka |
| Mauro Icardi | Galatasaray | 0.4 | 17.7 | -17.4 | mocny klub, Liga Mistrzów, głęboka ławka |
| Jonathan David | Lille | 22.4 | 5.5 | +16.9 | mocny klub, Liga Europy, karne floor +5.3, pewny starter |
| Tawanda Maswanhise | Motherwell | 2.7 | 19.6 | -16.8 | rotacja |
| Rodrigo Zalazar | Sporting Braga | 0.3 | 17 | -16.7 | Liga Europy, rotacja |
| Anders Dreyer | RSC Anderlecht | 1.1 | 17.7 | -16.6 | Liga Europy, rotacja |
| Leroy Sane | Bayern Munich | 24.2 | 7.7 | +16.6 | mocny klub, pewny starter |
| Liam Delap | Ipswich | 17.5 | 1.1 | +16.4 | mocny klub, pewny starter |
| Eldor Shomurodov | Roma | 3.9 | 20.1 | -16.2 | mocny klub, Liga Europy, rezerwowy |
| Breel Embolo | Monaco | 25.6 | 9.4 | +16.2 | mocny klub, pewny starter |
Co z tego wynika dla naszego modelu
Po dorzuceniu danych Understata (5 lig × 7 sezonów) zbiór kalibracyjny urósł z ~370 do 644 graczy. To sporo zmienia wnioski — niektóre wcześniejsze „pewniaki" okazały się artefaktem małej próby. Najważniejsze:
- Mocne kluby — model dramatycznie przesadza z boostem. Dla zawodników mocnych klubów (Bayern, City, Madryt, PSG) model zakłada +34% goli, a dane mówią −14%. Sam fakt grania w gigancie nie sprawia że strzelasz dużo więcej — wręcz przeciwnie, w gigancie konkurencja o miejsce + rotacja w pucharach + wymiany wystawień powodują że indywidualne tempo bywa niższe niż w klubie z jednym napastnikiem. (próba: 264 graczy)
- Pewni starterzy też mocno przeszacowani. Status „pewny starter (≥75% minut)" daje +7% boostu w modelu, a dane mówią −38%. Powód podobny: top-grający to często ci co już są wycenieni wysoko za sam wolumen minut — i potem dynamika sezonu obcina im część strzałów. (próba: 150 graczy)
- Sezon z gradem goli rzadko się powtarza — kara modelu za słaba. Wybuchowy sezon (8+ goli ponad zwykłe tempo) — model obniża −15%, dane obniżają −41%. Ekstremalny wybuch (12+ goli ponad) — model −20%, dane −51%. Powtarzanie świetnego sezonu to wyjątek, nie reguła. (próba: 40+32 graczy)
- Wiek 30+ — wcale nie przekarany, dane pokazują że i tak strzelają mniej. Z większą próbą widać że 33-34 strzelają o 31% mniej niż prognozuje model (wcześniejsze wnioski o „bias przeżycia" były artefaktem n=12). Krzywa wieku w modelu mogłaby być nawet trochę agresywniejsza dla 30+.
- Kara za transfer do mocniejszej ligi — w sam raz. Model −28%, dane −34%. To prawie zgadza się — w przeciwieństwie do tego co pokazywała mała próba. Sam transfer do mocniejszej ligi naprawdę odejmuje gole. (próba: 27 graczy)
- Przejście do słabszej ligi — model przesadza z boostem. Model +17%, dane −10%. Adaptacja zjada nawet to co miało być zyskiem ze słabszej obrony. Powinniśmy w ogóle nie boostować przy zejściu w dół.
Uwaga: niektóre grupy mają mało graczy (np. po wybuchowym sezonie tylko 17 osób). Wnioski są kierunkowe — pokazują gdzie iść, ale nie są wyrocznią. Dlatego warto je traktować jako hipotezy do sprawdzenia, a nie pewniki.