This article was originally written in early March but data is updated to mid-April 2017
Harry Kane could break Premier League goals record
Alan Shearer (260 PL goals)
Harry Kane trudged off the pitch on 2nd March 2014 as a late substitute. It was his eigth appearance for Spurs in the league and he had yet to score or help create any goals for his team. He was turning 21 before the next season started and at his age a career in the Premier League was in the balance. Ahead of him in the Spurs pecking order were internationals, Adeabyor and Soldado
However, in a busy month, Spurs lost league games against the top three; Chelsea, Arsenal and Liverpool and slipped from 5th - and an outside chance of Champons league football - to 6th, 8 points behind a fourth placed Arsenal and sporting a season goal difference of -4.
Given a start at home against Sunderland he obliged with the go ahead goal and also scored in the following two games. It was not all plain sailing though. Next seasons’s new boss, Mauricio Pochettino, appeared to prefer a lone striker in Adebayor and the only goal Kane picked up until November was at the wrong end as a late own goal against Sunderland cost his team the win.
Since then however, apart from a couple of dry spells he has been on fire Since that debut goal, his 68 is 4 more than Aguero with no other EPL player at the time of writing this article reaching the half century mark. The next Englishman on the list is Vardy with 36 and Kane is now a certainty for the National team for the forseeable future
Two games ago he scored a hatrick and laid on the other goal against Stoke statistically his best ever game. Last time out it was a brace and he could genuinely say he should have again got the match ball
Let’s see how he stacks up against some of the best goalscorers in Premier League history
# library(htmltools)
# library(bsplus)
library(DT)
library(plotly)
library(tidyverse)
# data required
goals <- readRDS("data/goals.rds")
assists <- readRDS("data/assists.rds")
playerGame <- readRDS("data/playerGame.rds")
standings <- readRDS("data/standings.rds")
With 19 league goals already, reaching the 20 goal mark for a third season in a row is a given unless he suffers a serious injury (which he promptly did!)
How rare is that accomplishment?
playerGame %>%
group_by(name,PLAYERID,season) %>%
summarise(totGls=sum(Gls)) %>%
filter(totGls>19&PLAYERID!="OWNGOAL") %>%
ungroup() %>%
select(-PLAYERID,player=name,season,Goals=totGls) %>%
arrange(season) %>%
DT::datatable(width=300,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = TRUE, searching = TRUE,info=FALSE))
NB In 1995/96 the season was reduced permenantly from 42 to 38 games
In 24 seasons, it has been accomplished 65 times by 38 different players. Only 5 players Aguero, Ferdinand, Henry, Shearer and van Nistelrooy have done it on least three occasions with just the latter three achieving it in three consecutive years (though Aguero may join them this season)
How young was Kane when he scored his first goal?
# split off
kane <-playerGame %>%
arrange(gameDate) %>%
filter(Gls>0&PLAYERID=="KANEH") %>%
slice(1)
playerGame %>%
arrange(gameDate) %>%
filter(Gls>0&PLAYERID!="OWNGOAL") %>%
group_by(PLAYERID) %>%
slice(1) %>%
plot_ly(x=~gameDate,y=~age) %>%
add_markers(name="All Scorers", opacity=0.5,
hoverinfo="text",
text=~paste0(name," ",round(age,2),'yrs<br>',
gameDate," ",TEAMNAME)) %>%
add_markers(data=kane, color=I('red'), name="Harry Kane",
hoverinfo="text",
text=~paste0(name," ",round(age,2),'yrs')) %>%
layout(
title="Age scoring first EPL goal. Hover For Player info",
xaxis=list(title=""),
yaxis=list(title="Age")
) %>%
config(displayModeBar = F,showLink = F)
So Kane was relatively young, but nothing special for an out-and-out striker. Overall, around 300 players have scored at a younger age. Serge Gnabry, for example, was well over two years younger when he scored his first goal in the same season but the Arsenal forward did not add to that tally in the Premier League before moving to the Bundesliga in the summer of 2016
Now let’s have a look at the players who had scored more goals than him at his current age
kaneAge <-playerGame %>%
arrange(desc(gameDate)) %>%
filter(Gls>0&PLAYERID=="KANEH") %>%
slice(1) %>%
.$age
kaneAge #Time difference of 23.60313 days - actually age in years
## Time difference of 23.81383 days
# All players
cum_data <-playerGame %>%
select(name,PLAYERID,Gls,age,mins,Assists,gameDate) %>%
group_by(PLAYERID) %>%
mutate(cumAssists=cumsum(Assists),cumGls=cumsum(Gls),cumMins=cumsum(mins),mpg=round(cumMins/cumGls,1))
cum_data %>%
filter(PLAYERID=="KANEH") %>%
arrange(desc(gameDate)) %>%
slice(1) %>%
select(age,cumGls)
## # A tibble: 1 x 3
## # Groups: PLAYERID [1]
## PLAYERID age cumGls
## <chr> <time> <int>
## 1 KANEH 23.81383 days 78
# slot in Kane's data as of 5th March 2017 but remove 2 goals to get Ronaldo in the comparison
topYoungsters <- cum_data %>%
filter(age<=23.60313&cumGls>=66) %>%
select(PLAYERID,name) %>%
unique()
topYoungsters$name
## [1] "Robbie Fowler" "Michael Owen" "Wayne Rooney"
## [4] "Cristiano Ronaldo" "Romelu Lukaku" "Harry Kane"
#[1] "Robbie Fowler" "Michael Owen" "Wayne Rooney" "Cristiano Ronaldo" "Romelu Lukaku"
#[6] "Harry Kane"
So we are now down to just five other players. Let’s chart the goal progression over their career
cum_data %>%
filter(PLAYERID %in% topYoungsters$PLAYERID) %>%
plot_ly(x=~age, y=~cumGls,color=~name,
hoverinfo="text",
text=~paste0(name,"<br>Age:", round(age,1),"<br>Goals:",cumGls)) %>%
add_lines() %>%
layout(title="Career goalscoring of youngest players to 68 goals",
xaxis=list(title="Age"),
yaxis=list(title="Goals")) %>%
config(displayModeBar = F,showLink = F)
By the age at which Kane recorded his first Premier league goal, the Liverpool pair Owen and Fowler were already over the 50 goal mark. Kane has since scored at a faster rate than all of them.
At 23.6 years, Kane’s current age, Owen now led the pack with over 100 but persistent injuries meant that he did not reach the 150 mark until he was 33. Fowler had a not dissimilar career path; Ronaldo left for pastures new; and Rooney may struggle to reach the 200 mark unless he moves to a less fashionable team. Lukaku, 10 weeks older, remains his closest rival, currently
How about players who scored more rapidly at the start of their premier league career, irrespective of age
topScorersMins <- cum_data %>%
filter(cumMins<=8464&cumGls>=68&PLAYERID!="OWNGOAL") %>%
select(PLAYERID,name) %>%
unique()
topScorersMins$name
## [1] "Alan Shearer" "Ruud van Nistelrooy" "Sergio Aguero"
## [4] "Harry Kane"
## add a couple more for comparison
henry <- cum_data %>%
filter(PLAYERID=="HENRYT") %>%
select(PLAYERID,name) %>%
unique()
torres <- cum_data %>%
filter(PLAYERID=="TORRESF") %>%
select(PLAYERID,name) %>%
unique()
topScorersMins <- rbind(topScorersMins,henry,torres)
cum_data %>%
filter(PLAYERID %in% topScorersMins$PLAYERID) %>%
plot_ly(x=~cumMins,y=~mpg) %>%
add_lines(color=~name,
hoverinfo="text",
text=~paste0(name,"<br>Age:",round(age,1),
"<br>mpg:", mpg)) %>%
layout(title="Rate of Goal Scoring over time by Leading Players",
yaxis=list(title="Minutes per goal", autorange="reversed"),
xaxis=list(title="Thousands of Minutes Played")
) %>%
config(displayModeBar = F,showLink = F)
Again, I have had to add a couple of players who just missed the criteria to get a better chart.
Interestingly, other than Henry, the other players all came to the Premier League as established stars (Shearer from Division 1 before the PL was formed).
Obviously, there is greater variablity in their rate of scoring initially and you may need to zoom in to get a cleare picture but the precipitous drop off in Torres form is clear and Kane’s rate may also exceed van Nistelrooy’s by the time he clocks 10,000 minutes on the pitch
Aguero currently holds the record as best scoring rate in PL history but, as can be seen, he is at a very similar rate to Shearer at this stage of his career (and older) and may end up much closer to him and Henry if he stays in the UK and gradually declines in performance
We can also measure the impact Kane scoring has on the team’s result
outcome <-playerGame %>%
filter(PLAYERID=="KANEH"&(START+subOn)>0) %>%
left_join(standings) %>%
select(Gls,res)
as.data.frame(table(outcome)) %>%
spread(key=res,value=Freq) %>%
mutate(ppg=round((3*Win+Draw)/(Draw+Loss+Win),2), Games=(Draw+Loss+Win)) %>%
select(Goals_Scored=Gls,Win,Draw,Loss,ppg,Games) %>%
DT::datatable(width=400,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = FALSE, searching = FALSE,info=FALSE))
outcome <-playerGame %>%
filter(PLAYERID=="KANEH"&(START+subOn)>0) %>%
left_join(standings) %>%
select(Gls,res)
as.data.frame(table(outcome)) %>%
spread(key=res,value=Freq) %>%
mutate(ppg=round((3*Win+Draw)/(Draw+Loss+Win),2), Games=(Draw+Loss+Win)) %>%
select(Goals_Scored=Gls,Win,Draw,Loss,ppg,Games) %>%
DT::datatable(width=400,class='compact stripe hover row-border order-column',rownames=FALSE,options= list(paging = FALSE, searching = FALSE,info=FALSE))
Kane has scored in 46 league games of which Spurs have lost just two. I’d say he was pretty important.
Only Collymore(52) Suarez(47) and Hazard(47) have played more games with just two or fewer losses.
As some of you may know, Darius Vassell scored in 46 games for Aston Villa and Manchester City without ever being on the losing side, with James Milner recently matching him on that mark
The other major criteria for measuring a striker’s performance is the number of assists he provides. Let’s look at all players who have scored at least 50 goals
fiftyGoals <-cum_data %>%
filter(cumGls>49&PLAYERID!="OWNGOAL") %>%
arrange(desc(gameDate)) %>%
group_by(PLAYERID) %>%
slice(1)
kane <- fiftyGoals %>%
filter(PLAYERID=="KANEH")
fiftyGoals%>%
plot_ly(x=~cumGls,y=~cumAssists) %>%
add_markers(hoverinfo="text", name="All Others",
text=~paste0(name,
"<br>Goals: ",cumGls,
"<br>Assists: ",cumAssists)) %>%
add_markers(data=kane,x=~cumGls,y=~cumAssists,color=I("red"), name="Harry Kane",
hoverinfo="text",
text=~paste0(name,
"<br>Goals: ",cumGls,
"<br>Assists: ",cumAssists)) %>%
layout(
title="Goals and Assists of Leading EPL goalscorers",
xaxis=list(title="Goals", rangemode="tozero"),
yaxis=list(title="Assists")
) %>% config(displayModeBar = F,showLink = F)
N.B. Unlike official data, I allow up to two assists per goal
The upper left quadrant of the chart is peopled by midfielders such as Giggs and Gerrard with longevity on their side. Players like Shearer, Fowler and Owen scored 2-3x as often as they provided assists whilst, for example, Henry and Rooney are much closer to a one to one ratio. of course the latter, in particular, played with some excellent goal scorers and has only topped United’s goal scoring charts in five of his thirteen seasons.
Kane’s major contemporary, Lukaku has 43 assists to go along with 78 goals whilst Kane has a mere 25 - though the rate per minute has progressively increased by season
As anyone who witnesses his play, as soon as he has sight of goal he puts his laces through the ball and aims for the corner. Whether this will change over time remains to be seen but most of Spurs other goals during his tenure have come from midfielders like Chadli, Eriksen and Alli. His partnership with the younger, Deli Alli, is clearly crucial if Spurs are to win the Premier League
Share this post
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Email