Gole w europejskich ligach

Czytanie zajmie Ci około 10 minut

Skąd padają gole? Jak poruszają się piłkarze podczas meczu? Czy zawodnicy podają zawsze do tych samych?

Wszystkiego tego można się dowiedzieć jak tylko ma się odpowiednie dane… Warto przeglądać czasem Reddita – można znaleźć np. Soccer shots dataset (post już jest skasowany, ale kto pierwszy ten lepszy) zawierający link do arkusza z danymi zeskrapowanymi z ciekawej strony understat.com.

Skoro ktoś zdjął te dane i udało mi się zapisać do nich link to wykorzystajmy je!

W pierwszej kolejności musimy pobrać dane z Google Drive – lepiej mieć niż nie mieć ;)

I w pliczku xg_master.csv mamy interesujące nas dane. Zobaczmy co mamy w środku:

Po standardowych glimpse() wiemy co i jak, na przykład wiemy że dane pochodzą z kilku sezonów i obejmują ligi europejskie z następującymi drużynami:

Bundesliga EPL La_Liga Ligue_1 RFPL Serie_A
Augsburg Arsenal Alaves Amiens Amkar AC Milan
Bayer Leverkusen Aston Villa Almeria Angers Anzhi Makhachkala Atalanta
Bayern Munich Bournemouth Athletic Club Bordeaux Arsenal Tula Benevento
Borussia Dortmund Brighton Atletico Madrid Caen CSKA Moscow Bologna
Borussia M.Gladbach Burnley Barcelona Dijon Dinamo Moscow Cagliari
Darmstadt Cardiff Celta Vigo Evian Thonon Gaillard FC Krasnodar Carpi
Eintracht Frankfurt Chelsea Cordoba GFC Ajaccio FC Orenburg Cesena
FC Cologne Crystal Palace Deportivo La Coruna Guingamp FC Rostov Chievo
Fortuna Duesseldorf Everton Eibar Lens FC Ufa Crotone
Freiburg Fulham Elche Lille FC Yenisey Krasnoyarsk Empoli
Hamburger SV Huddersfield Espanyol Lorient FK Akhmat Fiorentina
Hannover 96 Hull Getafe Lyon Krylya Sovetov Samara Frosinone
Hertha Berlin Leicester Girona Marseille Kuban Krasnodar Genoa
Hoffenheim Liverpool Granada Metz Lokomotiv Moscow Inter
Ingolstadt Manchester City Las Palmas Monaco Mordovya Juventus
Mainz 05 Manchester United Leganes Montpellier Rubin Kazan Lazio
Nuernberg Middlesbrough Levante Nancy SKA-Khabarovsk Napoli
Paderborn Newcastle United Malaga Nantes Spartak Moscow Palermo
RasenBallsport Leipzig Norwich Osasuna Nice Tom Tomsk Parma
Schalke 04 Queens Park Rangers Rayo Vallecano Nimes Torpedo Moscow Parma Calcio 1913
VfB Stuttgart Southampton Real Betis Paris Saint Germain Tosno Pescara
Werder Bremen Stoke Real Madrid Reims Ural Roma
Wolfsburg Sunderland Real Sociedad Rennes Zenit St. Petersburg Sampdoria
Swansea Real Valladolid Saint-Etienne Sassuolo
Tottenham SD Huesca SC Bastia SPAL 2013
Watford Sevilla Strasbourg Torino
West Bromwich Albion Sporting Gijon Toulouse Udinese
West Ham Valencia Troyes Verona
Wolverhampton Wanderers Villarreal

Jedna kolumna określa nam skuteczność strzału, a druga – sytuację. możemy więc zobaczyć…

Prześledźmy na szybko rozkład informacji w kolumnach kategorycznych:

result n
MissedShots 99454
BlockedShot 61410
SavedShot 58449
Goal 25919
ShotOnPost 4797
OwnGoal 770

shot_type n
RightFoot 13841
LeftFoot 7471
Head 4449
OtherBodyPart 158

situation n
OpenPlay 18237
FromCorner 3057
Penalty 2233
SetPiece 1654
DirectFreekick 738

preceding_action n
Pass 7119
Cross 4594
Standard 2971
Rebound 2292
None 2232
Throughball 1447
TakeOn 1412
Chipped 1294
HeadPass 804
Aerial 767
BallRecovery 350
BallTouch 238
LayOff 153
Dispossessed 108
Tackle 47
Interception 23
BlockedPass 21
Foul 12
CornerAwarded 8
GoodSkill 6
Clearance 3
End 3
Goal 3
OffsidePass 3
SubstitutionOn 3
Card 2
Challenge 2
FormationChange 1
Start 1

Ciekawe Tak sobie. Ciekawsze jest to, w której minucie padają gole. Zamiast liczyć jakąś średnią policzmy po prostu sumę bramek, które padły w kolejnych minutach:

Dlaczego tuż po 45 minucie mamy skok? To gol do szatnii – nieco przedłużona pierwsza połowa i gol w ostatniej chwili.

Niesamowite jest to, że im dłużej trwa mecz tym więcej bramek pada, tzn. więcej bramek pada w późniejszych minutach. Wydawałoby się, że zmęczenie i – czasem – granie na czas dadzą zna oo sobie i więcej będzie goli w pierwszej połowie. A tutaj zonk. W sumie fajny zonk, bo oznacza to tyle że emocje są do końca.

Podzielmy czas na 5-minutowe bloki i sprawdźmy jak w poszczególnych ligach wygląda liczba zdobytych bramek. Tym razem jednak licząc jaki procent bramek z całej ligi wpada w danym bloku:

Znowu widać 45 minutę. Szczególnie w angielskiej Premiere League można liczy na emocje. W sumie około 6% (co 16 mecz) to bramka pod koniec I połowy.

Skupmy się na chwilę na konkretnych zawodnikach. Na przykład Neymar (ulubiony piłkarz mojego syna) – czy strzela w Paris Saint Germain lepiej niż w Barcelonie?

Strzela mniej więcej tak samo jeśli chodzi o liczbę zdobytych bramek w meczu. A czy strzela z innego miejsca? Może trener coś wypracował i zmieniło się ustawienie?

To, że czerwonych kropek jest więcej oznacza tylko tyle, że dłużej grał w Barcy. Strzela mniej więcej z tego samego miejsca. No, w PSG ładuje trochę sprzed pola karnego.

Zobaczmy jak inni. Na początek przygotujemy fragment danych – 12 piłkarzy, którzy strzelili najwięcej bramek:

  • Lionel Messi
  • Cristiano Ronaldo
  • Luis Su�rez
  • Robert Lewandowski
  • Harry Kane
  • Edinson Cavani
  • Pierre-Emerick Aubameyang
  • Sergio Ag�ero
  • Alexandre Lacazette
  • Gonzalo Higua�n
  • Mauro Icardi
  • Antoine Griezmann

Skąd strzelają bramki ci panowie?

Tutaj jest jedna ciekawostka – Messi strzelający gola z prawego dolnego rogu boiska. Możemy poszukać tej bramki:

Feature Value
match_id 3926
league La_Liga
date 2017-02-04 15:15:00
home Barcelona
away Athletic Club
home_goals 3
away_goals 0
team Barcelona
minute 39
player Lionel Messi
x_g 0.05206308
shot_type LeftFoot
result Goal
x_coordinate 0.952
y_coordinate 0.116
situation DirectFreekick
assist_player NA
preceding_action Standard

Chwila w Google z wyszukaniem odpowiedniego meczu i mamy wynik jak poniżej:



A z jakiej odległości padają strzały? Nie będziemy tego przeliczać na metry, a na jednostki względne od środka bramki (punkt (1,0.5) w układzie współrzędnych boiska):

Wykres ułożono jest według średniej odległości, a kreska w pudełku mówi o medianie. Wcześniej widzieliśmy, że wszyscy strzelają głównie z pola karnego, zatem nic dziwnego że wyniki są zbliżone.

Poszukajmy najdalszego strzału:

Feature Value
match_id 5424
league Bundesliga
date 2014-09-20 14:30:00
home Paderborn
away Hannover 96
home_goals 2
away_goals 0
team Paderborn
minute 92
player Moritz Stoppelkamp
x_g 0.008978859
shot_type RightFoot
result Goal
x_coordinate 0.225
y_coordinate 0.475
situation OpenPlay
assist_player Uwe H�nemeier
preceding_action None
distance 0.7754031

Znowu chwila z Google i mamy:



Jak wygląda rozkład wyników w poszczególnych ligach? Jaki wynik meczu jest najpopularniejszy? Poniższy wykres to obrazuje:

Najpopularniejsze wyniki to 1:1 albo 1:0 (czy też 0:1). Zdaje się, że rozkład liczby bramek w meczu to rozkład Poissona – to warto wiedzie, jeśli się chce budować jakieś modele przewidujące wyniki.

Przejdźmy na poziom dwóch drużyn. Na początek policzymy sobie dane mówiące o rozkładzie wyników spotkań wszystkich drużyn z każdej ligi pomiędzy sobą:

Teraz wybierzemy dwie drużyny i zobaczymy jakie wyniki padły w meczach między nimi:

Niestety nie ma bardziej zróżnicowanych danych – Real z Barcą wygląda podobnie (każdy z wyników padł tylko jeden raz, meczy też było 10). Szkoda.

Ale możemy inaczej – ile bramek strzela i ile traci Barcelona w lidze hiszpańskiej?

Oczywiście zamiast Barcelony możemy wybrać inny zespół.

A jak wygląda bilans bramek Barcy? Ile średnio goli strzela i ile traci w meczach ze swoimi rywalami z La Liga?

Czarna kropka to różnica średnich – jak widać FC Barcelona z każdym rywalem jest na plusie.

Wróćmy do naszych top 12 zawodników. Kto im asystuje? Możemy narysować to na grafie:

Nie widać tego dobrze na powyższym obrazku, ale w odpowiednim powiększeniu (kliknij na obrazek) widać na przykład pana Lucasa Mourę – jest pomiędzy dwoma różnymi grupami. Dlaczego? Ano, bo przeszedł z PSG do Tottenham i podaje już komuś innemu :)

Przy użyciu pakietu networkD3 możemy przygotować z gotowego grafu (obiektu pakietu igraph) interaktywną wersję:



Prawda, że fajne?

To początek prac, jakieś pomysły po pół dnia przyglądania się danym. Jeśli masz ochotę – możesz użyć przygotowanego wyżej kodu do zbudowania na przykład aplikacji w Shiny, w której będzie można wybrać drużyny albo zawodników i dla każdego takiego wyboru wygenerować odpowiednie wykresiki. A gdyby jeszcze zasilać dane (trzeba by scrapper napisać) każdego dnia byłoby prawie online. Dlaczego understat.com tego nie ma?

Miło będzie jeśli docenisz trud autora stawiając dużą kawę. Wpadnij też na Dane i Analizy na Facebooku – tam więcej takich smaczków (szczególnie dla praktyków).

6 komentarzy do wpisu „Gole w europejskich ligach”

  1. a czy nie jest tak, że 45 i często 46 a nawet 47 minuta jest policzona *podwójnie* przy statystykach goli? (jako pierwsza i druga połowa)
    i dlatego wydaje się, że statystycznie wtedy pada więcej bramek w porównaniu do innych przedziałów?

Dodaj komentarz