EPL August 14-17
EPL Second Round
The English Premier league has now gotten through a second round of matches and as everyone predicted Leicester are five points clear of the champions Chelsea. Here are the important statistics from all of the weekend's games:
%matplotlib inline
import league_analysis
epl = league_analysis.epl
league_analysis.display_matches(epl, '14/08/15', '17/08/15')
Man City 3 - 0 Chelsea
The biggest game was undoubtedly between 1st and 2nd in the league last season. There is little doubt that Man City outplayed their guests and deserved their win, although if you really wanted to argue the case you would point to the potential sending off of Ferdandinho just prior to half time. Whether you agree that it deserved a red-card there was certainly the potential for the referee to see it that way.
Anyway, the shots indicate that City were indeed the better team, but 3-0 likely overstates the case. In particular Chelsea had some very decent opportunities. It's the sort of game that Chelsea could have undeservedly won/drawn.
Sunderland 1-3 Norwich
Sunderland losing their second game of the campaign and once again deservedly so. Norwich were well worthy of their 1-3 away victory, black cats fans should be getting a little worried. Although, again, this is the second game of the season and currently Sunderland are only a point of last season's champions.
Aston Villa 0-1 Manchester United
For the second week in succession Man United win 1-0 whilst far from dominating their opposition. I'm sure you could spin this as positive or negative as it pleases you.
Watford 0-0 West Brom
Watford seem to have at least settled into the Premier League in terms of competing well with the league's more established teams. They have out-shot both their opponents so far. But they still only have two points to show for it. Again I would imagine that both Watford fans and enemies will read into this what they wish.
Leicester, Stoke, and Arsenal
All worthy of their away points. Stoke even could have nicked the game at White Hart Lane.
Southampton 0-3 Everton
Okay hands up my bet for this game was a straightforward 2-0 victory for the home side. When in fact we have a convincing win for Everton. However, the shots totals show that this was probably at least a little lucky for Everton. Southampton have out-shot their visitors and the shots on target were 4 a piece. So for Southampton then it's the second weekend in succession they have out-shot their opponents and not been fully rewarded. This is currently a statistical blip, the question is, will it prove to be in the coming weeks. I think it will, but then I thought Southampton would win this game.
Liverpool vs Bournemouth
Okay Liverpool probably just about deserved their win, but 1-0 seems fair. Only two shots on target from 18.
TSR Week 1 vs TSR Week 2
Now for a bit of fun, I'm going to graph the TSR of a team in the first week against their TSR in the second week.
teams = epl.teams
def get_tsr_match(league, team, match_index):
def tsr_in_game(game):
shots_for = league_analysis.shots_for_in_game(team, game)
shots_against = league_analysis.shots_against_in_game(team, game)
total_shots = shots_for + shots_against
return league_analysis.clean_ratio(shots_for, total_shots, default=0.5)
stats = league.team_stats[team]
return tsr_in_game(stats.games[match_index])
def get_x_stat(league, team):
return get_tsr_match(league, team, 0)
def get_y_stat(league, team):
try:
return get_tsr_match(league, team, 1)
except IndexError:
print(team)
league_analysis.scatter_stats(epl, teams=teams, xlabel='1st Game TSR', ylabel='2nd Game TSR',
title='1st and 2nd game TSR comparisons',
get_x_stat=get_x_stat, get_y_stat=get_y_stat)
So there is a pretty strong correlation then as you would expect. Those teams deviating from the line of best fit have played two teams perceived to be quite different in strength as you would expect. For example Swansea have played Chelsea away followed by Newcastle at home. Meanwhile West Ham have faced Arsenal away followed by Leicester at home.
Comments
Comments powered by Disqus