Andrew Clark

With the Premier League title all but sewn up by Chelsea and a two week absence of Premier league football due to an International break, it is time to look at who might be Player of the Year

OK. It’s Kante. (confirmed in April)

Unless there is a massive meltdown by the Blues his immense defensive presence and lack of full recognition last year for champions Leicester mean that he is the overwhelming favourite; as much as 1-12 at many bookmakers

However, as it is normally a more offensive player who takes home the trophy,I wanted to take a quick look at the elite attacking players over EPL history

The measure I have used is points per game (ppg). This consists of adding a player’s goals and assists - not forgetting I allow up to two per game - and normalizing them over 90 minutes. The very best players average a point per game so that is a good, simple guide to the best of the attackers. We obviously need to knock out players who have played for only a limited time, so a minimum of 20 points in a season is also a requirement

One of the datasets, premierGame, which I create for my premierleague site contains all the information I require

library(DT)
library(plotly)
library(knitr)
library(tidyverse)

premierGame <- readRDS("data/playerGame.rds")

The basic dataset is created thus

# group individual game data  by player/season and summarize 
eliteSeasons <- premierGame %>% 
     group_by(name,PLAYERID,season) %>% 
     summarize(totMins=sum(mins,na.rm=TRUE),totGls=sum(Gls,na.rm=TRUE),totAssts=sum(Assists,na.rm=TRUE),
               Points=totGls+totAssts,ppg=round(Points*90/totMins,2)) %>% 
     filter(PLAYERID!="OWNGOAL") %>% 
  select(name,season,Goals=totGls,Assists=totAssts,Points,ppg) %>% 
     ungroup()

head(eliteSeasons)
## # A tibble: 6 x 7
##   PLAYERID    name  season Goals Assists Points   ppg
##      <chr>   <chr>   <chr> <int>   <dbl>  <dbl> <dbl>
## 1   ADRIAN  Adrian 2013/14     0       0      0  0.00
## 2   ADRIAN  Adrian 2014/15     0       1      1  0.03
## 3   ADRIAN  Adrian 2015/16     0       0      0  0.00
## 4   ADRIAN  Adrian 2016/17     0       0      0  0.00
## 5     ALEX    Alex 2007/08     2       3      5  0.22
## 6     ALEX    Alex 2008/09     2       2      4  0.18

Look’s good.

Let’s first look at the number of players reaching our specific criteria for each season.

N.B Because of a current issue with specific packagesand the blog theme the actual code used cannot be displayed The code below would normally suffice but is not evaluated

eliteSeasons %>% 
  filter(Points>=20&ppg>=1)%>% 
  count(season, sort=TRUE)  %>%
  rename(count=n) %>% 
                         DT::datatable(width=200,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = FALSE, searching = FALSE,info=FALSE))

Only Alan Shearer featured in that most peculiar season of all, the inaugural 1992/93 campaign, but 11 managed the feat in 2001/02

In that year, five Manchester United players made the list (van Nistelrooy, Giggs, Solskjaer, Cole and Beckham) with Arsenal not far behind (Henry, Bergkamp, Pires, Wiltord) in a season which, unsurprisingly, these teams finished first and second

eliteSeasons %>% 
  filter(Points>=20&ppg>=1&season=="2001/02")%>% 
  select(-PLAYERID) %>% 
  arrange(desc(ppg)) %>%
 DT::datatable(width=500,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = TRUE, searching = FALSE,info=FALSE))

What about those who have achieved the mark most often, including those on course this season.

eliteSeasons %>% 
  filter(Points>=20&ppg>=1)%>% 
  count(name, sort=TRUE)  %>%
  rename(seasons=n) %>% 
 DT::datatable(width=200,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = TRUE, searching = FALSE,info=FALSE))

Rooney’s career at Manchester United may be going out with a whimper but he is clearly one of the all-time EPL greats. Let me know of any surprises, including omissions

How about the best individual seasons all time?

eliteSeasons %>% 
  filter(Points>=20&ppg>=1) %>% 
  arrange(desc(ppg)) %>% 
  select(-PLAYERID) %>% 
  head(10) %>% 
 DT::datatable(width=500,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = TRUE, searching = FALSE,info=FALSE))

Henry’s consistency stands out. Aguero missed out on the awards in 2013/14 (in spite of Manchester City winning the title) to Suarez’s amazing season - partly as he only started 20 games due to injury

How about this season? I will set the standards a little lower as, at the time of writing, there is still a quater of the year to go

premierGame %>% 
     group_by(name,PLAYERID,season) %>% 
     summarize(totMins=sum(mins,na.rm=TRUE),totGls=sum(Gls,na.rm=TRUE),totAssts=sum(Assists,na.rm=TRUE),
               Points=totGls+totAssts,ppg=round(Points*90/totMins,2)) %>% 
     filter(PLAYERID!="OWNGOAL"&Points>=12&ppg>=0.8&season=="2016/17") %>% 
   ungroup() %>% 
  arrange(desc(ppg)) %>% 
  select(name,Points,Goals=totGls,Assists=totAssts,ppg) %>% 
 DT::datatable(width=500,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = TRUE, searching = FALSE,info=FALSE))

This quite interesting: Fabregas has been used mainly as a substitute thias season but is actually having his best ever season in terms of points/90 minutes. Sanchez leads those most likely to qualify at year-end but Arsenal have disappointed and he now looks an also-ran. With Kane out for several more weeks, Hazard and Alli look like the only ones with any chance of upsetting the Kante bandwagon. (Hazard came close and Alli won the Young Player of the year)

comments powered by Disqus