Možemo li predvidjeti Fantasy Premier League rezultate?

Znači, htjeli bismo prestati ovisiti o FPL influencerima, i samostalno doći do najbolje ekipe u narednom tjednu? Pogledajmo kako je to provesti nekoliko jednostavnih analiza. U blog postu neću ulaziti u detalje, ali za one koji žele znati više, na linku se nalazi cijeli kod potreban za provedbu ovih analiza, pa tko voli – nek izvoli, ostali – čisto da vidite šta se zbiva iz scene. Pa krenimo.

Kako sve jednostavno izgleda dok se ne krene… Što bismo mi danas analizirali? Koje rezultate? Trebaju li nam možda podaci o igračimamenadžerima ili možda o gameweek-ovima? Ovisno o tome što nam treba ćemo koristiti različite naredbe, a podaci će se nalaziti u različitim tablicama.

Kako Vas ne bih otjerao prije nego li ste i došli, ostanimo za sad na igračima. U nekom od sljedećih postova ću pokazati kako prikazati podatke o menadžerima (koliko bodova po kolu, koliko transfera, tko igra, tko je na klupi, itd.) i kako prikazati podatke o kolu (koliko transfera je napravljeno, koliko wildcard-ova odigrano, itd.).

Ja sam konkretno zatražio od službene FPL stranice da mi pošalje bazu podataka u kojoj se nalaze informacije o (cca) 600tinjak igrača (otprilike 30ak po ekipi) i njihovi rezultati do ovog kola (u trenutku pisanja, usred 19. kola smo). Radi se o ooogromnoj tablici, za koju je mom kompjuteru (viša srednja klasa) trebalo 2-3 minute da skine tu bazu u kojoj se nalazi 11272 retka i 37 stupca (varijabli). Puno, previše. Da bismo krenuli, provjerimo što se sve nalazi u bazi:

##  [1] "element"                    "fixture"                   
##  [3] "opponent_team"              "total_points"              
##  [5] "was_home"                   "kickoff_time"              
##  [7] "team_h_score"               "team_a_score"              
##  [9] "round"                      "minutes"                   
## [11] "goals_scored"               "assists"                   
## [13] "clean_sheets"               "goals_conceded"            
## [15] "own_goals"                  "penalties_saved"           
## [17] "penalties_missed"           "yellow_cards"              
## [19] "red_cards"                  "saves"                     
## [21] "bonus"                      "bps"                       
## [23] "influence"                  "creativity"                
## [25] "threat"                     "ict_index"                 
## [27] "starts"                     "expected_goals"            
## [29] "expected_assists"           "expected_goal_involvements"
## [31] "expected_goals_conceded"    "value"                     
## [33] "transfers_balance"          "selected"                  
## [35] "transfers_in"               "transfers_out"             
## [37] "playername"

Neke varijable su mi jasne (npr., transfers_in vjerojatno sadrži informaciju o broju transfera igrača u gameweek-u), ili roundpretpostavljam da je naziv za gameweek, dok mi neke i nisu baš jasne, npr. što je to element? Pa da ne bismo nagađali, pogledajmo koje vrijednosti se pojavljuju u varijabli element:

## # A tibble: 6 x 2
##   playername                     element
##   <chr>                            <dbl>
## 1 Philip Billing                      70
## 2 Hakim Ziyech                       135
## 3 Lyanco Silveira Neves Vojnovic     413
## 4 Niels Nkounkou                     198
## 5 Nélson Cabral Semedo               482
## 6 Vladimir Coufal                    463

Meni se čini (a i provjerio sam, tako da sad i znam) da se radi o šifri igrača, a dobili su je na način da su klubovi poredani abecedeno (Arsenal, …), i unutar kluba su igrači poredani abecedno pa tako (Cedric Soares ima šifru 1). Ako bolje promotrimo kojih sve varijabli imamo, primjetit ćemo da ne postoji podatak o poziciji igrača, kao ni o klubu za koji igrači igraju…

Eto prilika za jedan budući post kako doći do tih informacija. U svrhu ne-kompliciranja, zadržimo se gdje smo trenutno – dakle imamo samo informacije o igraču, odnosno o njegovom učinku po pojedinom kolu. Recimo da nas ne zanimaju igrači koji do sad nisu odigrali ni minute, pa ćemo njih izbaciti iz baze.

Pala knjiga na manje slova, ne znam točno koliko ali više nemam 11 tisuća redova (cca 30ak igrača x 20 klubova x 19 kola = 11 tisuća), nego cca 7000 redova, drugim riječima, oko 18 igrača po klubu je ostalo koji su ukupno odigrali barem 90 minuta u ovih 19 kola.

Opet smo na raskrižju, što nas zanima, učinak igrača od kola do kola, ili sažetak učinka do sad, do 19og kola? Možemo za prvu ruku pogledati kako je Haaland igrao ovih 19 kola i usporediti njegove bodove sa recimo Salahovim bodovima:

Eto, nije neki specijalni graf, i to smo i znali, ali vidimo ovdje da Haaland zaista ostvaruje više bodova po kolu. Što se još vidi, slično su počeli, kod obojice mi se čini da ta linija skakuće (kolo dobro, pa jedno loše, kolo dobro, pa jedno loše,…)).

Provjerimo je li sličan obrazac obzirom na to igraju li kod kuće ili vani. Ponovit ćemo sve analize uz uvjet da dobijemo 2 slike. Jednu za kod kuće a drugi na strani

Teško mi je nešto smisleno komentirati na ovom grafu. Definitivno ono što je očito je da Haaland obožava igrati kod kuće (TRUE je odgovor na ime varijable was_home?, dakle TRUE je kad su kod kuće), dok Saki je rekordan broj bodova ove sezone (12 i 15 bodova) ostvario vani.

Tek sam sad vidio da (od ove godine) postoji i metrika xG i xA. Pa provjerimo koliko je xG valjana mjera, odnosno koliko dobro njome možemo predvidjeti broj golova nekolicine top igrača. Ja sam upravo odlučio da to budu: KDB, Mo, Kane, Rashford, Erling, Toney, Mitrović, Sterling, Mount, Almiron, Jesus, Martinelli, Kuluševski, Wilson, Darwin i to je to:

Ono što je vidljivo tu na grafu da se radi o “over-performerima”. Izuzev Mo-a i Darwina, koji su malo podbacili. U svakom slučaju xG je očito valjana mjera, u smislu da čim veći očekivani broj golova – to veći broj zabijenih golova. Malo me samo muči koji su igrači debelo pobacili – u smislu da su zabili puno manje golova od predviđenog xG-em:

Dakle, ovdje sam izračunao razliku između očekivanog i zabijenog broja golova. Dobrom starom Patricku ćemo oprostiti, ozljeda ga je sputala da ne ostvari svoj potencijal, no Bowen, Welback, čak i Jesus koji je nešto golova su kratki cca 3 gola… Što realno nije puno, ali vodeći se onom starom da je forma prolazna, a klasa vječna – samo je pitanje vremena kad će doktori početi trpati!

Za kraj, pogledajmo tko bi predvodio gornju listu ako pogledamo samo one igrače koji su zabili makar 3 gola: 

Još se eventualno Mo ugurao, ostali su više-manje točno tamo gdje im xG i predviđa da jesu!

Do sljedećeg puta, nadam se da smo nešto naučili!

A kao što sam obećao, cjelokupni tekst, zajedno s kodom potrebnim za provedbu ovih analiza možete naći na sljedećoj poveznici.