EPL 12-14th December 2015

EPL 12-14th December

A great weekend in the premier league, which saw the meeting between the two sides that the public continues to believe will eventually revert back to last season's form. Leicester flying high at the top of the table are expected to wane at least some of they way down the league table whilst the champions Chelsea are expected to start pulling together a string of victories to propel them up the league towards some semblance of at least competing for a champions' league spot.

In [1]:
%matplotlib inline
import league_analysis
from IPython.display import display, HTML
epl = league_analysis.epl
weekend_matches = league_analysis.get_matches(epl, '12/12/2015', '14/12/2015')
league_analysis.display_given_matches(weekend_matches)
pairs = [(stats.teamname, stats.points) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Points'], pairs)
Home Away
Team Bournemouth Man United
Goals 2 1
Shots 11 11
SOT 5 5
Home Away
Team Crystal Palace Southampton
Goals 1 0
Shots 12 15
SOT 5 3
Home Away
Team Man City Swansea
Goals 2 1
Shots 13 13
SOT 5 7
Home Away
Team Norwich Everton
Goals 1 1
Shots 9 15
SOT 2 3
Home Away
Team Sunderland Watford
Goals 0 1
Shots 14 13
SOT 2 6
Home Away
Team West Ham Stoke
Goals 0 0
Shots 22 12
SOT 9 3
Home Away
Team Aston Villa Arsenal
Goals 0 2
Shots 18 8
SOT 2 4
Home Away
Team Liverpool West Brom
Goals 2 2
Shots 28 4
SOT 8 2
Home Away
Team Tottenham Newcastle
Goals 1 2
Shots 20 8
SOT 8 4
Home Away
Team Leicester Chelsea
Goals 2 1
Shots 9 11
SOT 5 5
Position Team Points
1 Leicester 35
2 Arsenal 33
3 Man City 32
4 Man United 29
5 Tottenham 26
- Crystal Palace 26
7 Watford 25
8 West Ham 24
- Liverpool 24
10 Everton 23
- Stoke 23
12 Southampton 21
13 West Brom 20
14 Bournemouth 16
- Newcastle 16
16 Chelsea 15
17 Swansea 14
- Norwich 14
19 Sunderland 12
20 Aston Villa 6

Bournemouth 2-1 Manchester United

Two of the more statistically interesting teams in the league. For a while stat watchers have been expecting Bournemouth to improve results since their underlying performances looked quite decent whilst their results were awful. Manchester United continued to have pretty lukewarm shots and are generally playing "low-event" football. I'd really like to spend a full post talking about why I think low-event football for a generally superior team is a poor strategy but for the time being Manchester United have appeared to some to be riding their luck. Whether they are really riding their luck or simply providing an excellent case study is a topic to be explored. For the interested a good couple of statsbomb articles:

I'm quite interested in Bournemouth, in the last two weeks they have shot themselves up the table to 14th with 6 points from two games they probably were not hoping for much from when eyeing up the fixture list before the season began. Here Bournemouth playing at home didn't just compete well but matched United shot for shot. Last week I said that it was probably more interesting that Bournemouth competed so well with Chelsea rather than that they won, and that carries over to this now two game streak. Bournemouth should be pleased to have competed so well with Chelsea and Manchester United, and take the 6 points as a very handy, and much needed, bonus.

All this means is that the current winning streaks table looks like this:

In [3]:
pairs = [(stats.teamname, stats.current_winning_run) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Current Winning Streak'], pairs)
Position Team Current Winning Streak
1 Watford 3
2 Leicester 2
- Arsenal 2
- Bournemouth 2
- Newcastle 2
6 Man City 1
- Crystal Palace 1
8 Everton 0
- Swansea 0
- Aston Villa 0
- West Ham 0
- West Brom 0
- Man United 0
- Tottenham 0
- Norwich 0
- Chelsea 0
- Stoke 0
- Sunderland 0
- Liverpool 0
- Southampton 0

Crystal Palace 1-0 Southampton

A pretty even affair. Personally think that ultimately Southampton are the better team, but they are going through a bit of a difficult patch at the moment. Here is the table for the current winless run. Obvious problems for some, but I guess the 4 next to Southampton might count as the more surprising.

In [4]:
pairs = [(stats.teamname, stats.current_winless_run) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Current Winless Run'], pairs)
Position Team Current Winless Run
1 Aston Villa 15
2 Swansea 6
- West Ham 6
4 Norwich 4
- Southampton 4
6 Everton 3
- West Brom 3
- Man United 3
- Tottenham 3
- Chelsea 3
11 Sunderland 2
- Liverpool 2
13 Stoke 1
14 Leicester 0
- Arsenal 0
- Bournemouth 0
- Man City 0
- Newcastle 0
- Crystal Palace 0
- Watford 0

Manchester City 2-1 Swansea

Well Swansea clearly in a bit of trouble, that is six games now without a win. But they have actually competed very well against a team that often simply blows teams out of the water at home. Most of the mainstream media have picked up on City's lukewarm form, and suggested that injuries cannot be an excuse because of the cost of the players that are playing. Possibly.

Norwich 1-1 Everton

Everton continue to frustrate their fans to some degree. This is a decent away point, and clearly they had the better of the match, though not by a great deal.

Sunderland 0-1 Watford

Watford's third win in-a-row propels them to the top of the table, well the top of the current-winning-steak table. Still this little run has lifted Watford from getting pretty apprehensive about relegation worries to 7th in the table. They are now only 10 points off the top of the table and 4 from champions' league qualification. Pretty astounding, but probably goes more to show what an exciting season we may be in for.

West Ham 0-0 Stoke

Just when West Ham have actually started to shoot, their shooting-percentage has crashed and burned. So they are in the position of actually improving their underlying performances whilst seeing their results hit something of a bump in the road. That six game run without a win is starting to look mighty ugly. Their good results early on in the season mean that they are not worried about relegation for the time being, and I would have to believe their improved performances will bear fruit at some point. But this has gotten interesting. Here is how West Ham's shooting percentage (ratio of shots on target to goals) has declined over the course of the season, but their tsr has gotten better until roughly levelling out recently.

In [9]:
after_game_no_dicts = league_analysis.collect_after_game_dicts(epl, '01/08/2015', '15/12/2015')
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'goals_sot_for_ratio', teams=['West Ham'])
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'tsr', teams=['West Ham'])

Aston Villa 0-2 Arsenal

An amazing shock. Okay so Aston Villa didn't win, they have not done that since the first day of the season, but they did have 18 shots:

In [10]:
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'shots_for', teams=['Aston Villa'])

Okay when you graph it it does not look all that interesting. I had kind of expected the jump up to look like a ramp. Oh well. Still a potential for hope? Probably not, but at this point Villa will have to take anything they can get.

Liverpool 2-2 West Brom

Liverpool are starting to look pretty good from a shots point of view. They may have required a very late equaliser to salvage a home point against opposition they may have hoped to retain all three points against. However, Liverpool clearly somewhat dominated the game, perhaps having more shots from being in a losing position. One might argue that Liverpool are showing signs of having difficulty in breaking down teams that are set up to frustrate them.

In [14]:
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'tsr', teams=['Liverpool'], rankings=True)
pairs = [(stats.teamname, stats.tsr) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'TSR'], pairs)
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', teams=['Liverpool'], rankings=True)
Position Team TSR
1 Man City 0.6617647058823529
2 Arsenal 0.6104783599088838
3 Liverpool 0.6089108910891089
4 Tottenham 0.5773672055427251
5 Man United 0.5545171339563862
6 Southampton 0.5494252873563218
7 Chelsea 0.539568345323741
8 Bournemouth 0.5386666666666666
9 Leicester 0.5369928400954654
10 Watford 0.5126262626262627
11 Swansea 0.4835443037974684
12 West Ham 0.4793028322440087
13 Everton 0.47465437788018433
14 Norwich 0.4621026894865526
15 Crystal Palace 0.44924406047516197
16 Aston Villa 0.4413265306122449
17 Sunderland 0.40941176470588236
18 Stoke 0.3932038834951456
19 West Brom 0.36772486772486773
20 Newcastle 0.3526570048309179

These two graphs clearly show some steady improvement from Liverpool over the course of the season. Only Manchester City and Arsenal have a better TSR than Liverpool now and both have been somewhat prolific.

Tottenham 1-2 Newcastle

And so the league's longest running lossless streak comes to an end. Newcastle have been involved in some funny games, winning against both Bournemouth and now Tottenham whilst having very poor shot statistics, and also a strange game against Norwich in which they scored all 6 of their shots on target. But Newcastle also lost to Sunderland whilst dominating them. So, interesting times for Newcastle. However, two wins in two for Newcastle may well give their manager some breathing space, but I'd still be worried if I were him:

In [15]:
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'tsr', teams=['Tottenham', 'Newcastle'], rankings=True)
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', teams=['Tottenham', 'Newcastle'], rankings=True)

So Newcastle stuck to the bottom of both TSR and team rating leagues. Hmm. Tottenham though look fine.

Leicester 2-1 Chelsea

So, their manager has not lasted to meet Sunderland on Saturday. What are the chances of Chelsea actually being relegated? We looked at the three game winning streak of Watford and how it has propelled them up the league. It is really quite possible that Chelsea could pull off something similar. Their next three fixtures are Sunderland, Watford and Manchester United. Equally though, their current position is not born of unprecedented bad luck. They are, currently, at best a mid-table team, so they may be a bit below where they should be but they are not playing as a champions' league team (despite progressing to the knock-out stages in that competition this year). So a bit of bad luck could see them in the relegation zone. I expect them to dominate Sunderland on Saturday, and probably win, whoever is in charge.

Leicester of course are great. They are just as surely sitting higher than they really should be, but I make them now 6th in team rating. As I've said before, 6th in team rating winning the league is unlikely, but it certainly makes a champions' league position attainable. They have some signs of worry, their PDO is pretty high. Still, I don't see any sign that they will drop off the charts in the sort of style that West Ham managed last season. I'd be surprised if they don't manage a top 7 finish.

In [18]:
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'pdo', teams=['Leicester', 'Chelsea'], rankings=True)
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', teams=['Leicester', 'Chelsea'], rankings=True)
pairs = [(stats.teamname, stats.team_rating) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Team Rating'], pairs)
Position Team Team Rating
1 Man City 0.25766710697656986
2 Arsenal 0.21703248135278053
3 Tottenham 0.17595241245418936
4 Liverpool 0.1263101779679136
5 Man United 0.12211932559623334
6 Leicester 0.10337819282437974
7 Southampton 0.07089137106539248
8 Watford 0.02548303917201781
9 Everton 0.011819813166359619
10 West Ham -0.0008522610531197863
11 Chelsea -0.012242329020571242
12 Crystal Palace -0.013376844502607255
13 Bournemouth -0.027157809742699213
14 Swansea -0.07449639775056417
15 Norwich -0.10235648817576626
16 Stoke -0.14474600376770494
17 Aston Villa -0.17842641866164266
18 Sunderland -0.17932147750893024
19 West Brom -0.1814467882305324
20 Newcastle -0.23133447185281183

Well as always thanks for reading.

Comments

Comments powered by Disqus