EPL 5-7th December 2015
EPL 5th-7th December
Our weekly brief look into the statistics that have been behind the weekend's games in the English Premier League.
%matplotlib inline
import league_analysis
from IPython.display import display, HTML
epl = league_analysis.epl
weekend_matches = league_analysis.get_matches(epl, '05/12/2015', '07/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)
Arsenal 3-1 Sunderland
So we have a relatively straightforward win for Arsenal. Sunderland though are showing signs of improvement. Here is how Sunderland's team rating has changed over the course of the season:
after_game_no_dicts = league_analysis.collect_after_game_dicts(epl, '01/08/2015', '09/12/2015')
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', rankings=False,
teams=['Sunderland', 'Aston Villa', 'Newcastle', 'West Brom', 'Stoke'])
That's after playing Arsenal, one of the better teams in the league, hence the dip after game 14. Here we can see how well relative to the average team Sunderland managed against Arsenal:
epl.compare_game_against_opponents('Arsenal', 'Sunderland', '05/12/15')
So basically Sunderland performed about as well as the average team does against Arsenal, which is not great but better than you might expect for a team second from bottom. Don't forget that is the average team in all of Arsenal's games, both home and away, you might expect them to be a bit better at home than on average, but you'd be wrong:
'Home {0} vs {1} Away'.format(epl.home_team_stats['Arsenal'].team_rating, epl.away_team_stats['Arsenal'].team_rating)
Still though, I think that represents a decent performance from Sunderland and for about the first time in the season relegation is not looking like a foregone conclusion.
Chelsea 0-1 Bournemouth
Strange one, you kind of feel that Chelsea did not deserve to lose here, but Bournemouth deserved a win for all the unlucky dropped points they have had. Probably what is more important here, is that whilst Bournemouth had something of a snatched victory here, they certainly competed well with the champions at home. That is pretty remarkable, both for Bournemouth and for understanding how poor relative to expectations Chelsea have been this season.
Manchester United 0-0 West Ham
Well for all that has been written about Manchester United this season it is quite incredible that they managed 21 shots here. That only 1 of them was on target is also somewhat incredible. Manchester United have been noted for their efficiency this season, but it was not so here. Very difficult to understand what was going on in this game.
Southampton 1-1 Aston Villa
This has to go down as a great away point for Aston Villa. However their underlying numbers continue to be dreadful. It is hard to see how they will manage to pull themselves out of the relegation zone. Certainly we would expect their form to have to change in order to allow for any chance to avoid relegation. They are now second last to Newcastle for team rating, with Sunderland just above, but seemingly improving. Whereas Aston Villa's appears to be getting worse. You would probably prefer to be Sunderland than Aston Villa at this point, but the more interesting question is; would you prefer to be Newcastle?
pairs = [(stats.teamname, stats.team_rating) for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Team Rating'], pairs)
Stoke 2-0 Manchester City
Obviously a great win for Stoke. Like Sunderland, their team rating so far is poor, but also improving. Similar to the Bournemouth win against Chelsea I think it's more interesting that Stoke were not dominated by City in the way that City have against many other teams. In other words, this was not like the West Ham win against City.
Swansea 0-3 Leicester
It's not like Leicester did not deserve this. Perhaps one could make the case that 0-3 is a little flattering but it certainly seems like the better team won. Much has been written about Leicester and how they will likely regress. Still, they now have a team rating which is 5th in the league. If they keep that up, top 4 is certainly not out of the question. But that is a rather large "if", we might expect injuries to hit Leicester hard, because of a possible lack of depth in the squad. Perhaps, but that is pure speculation. Anyway, it seems likely they will have a great season, just remains to be seen exactly how great.
Swansea on the other hand are probably not in as much trouble as is perceived. Garry Monk, as others have written, was probably a little unfortunate to lose his job. Swansea probably have designs to be better than 14th in the league, but so do at least 13 other teams. They do not look in relegation form to me, just temporary duldrums (but see the team rating graph in the following section).
Watford 2-0 Norwich
Good deserved win for Watford. This gives me a chance to plot the "team rating" fortunes of the lower-mid-table teams. These are teams in the bottom half of the league that are currently avoiding relagation spats. Well the teams I've gone for here are a bit creative licence since I consider Newcastle to be in the relegation battle and Southampton to be more of a top half of the table team despite their current positions. Also suspect Watford will dip into the lower half.
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', rankings=False,
teams=['Norwich', 'Swansea', 'Chelsea', 'Bournemouth', 'Watford'])
Despite what I said above that is a pretty ominous decline for Swansea. Chelsea and Watford seem to be on the way up. Bournemouth a bit more difficult to pin down. Norwich certainly starting to get worrying. Draw your own conclusions but to me relegation seems to be 3 from Aston Villa, Newcastle, Sunderland, Norwich and Swansea in that order of likilhood to be relegated. West Brom and Bournemouth will also likely be looking over their shoulders for much of the season, meaning that I don't expect them to end in the top half. Chelsea and Watford, I suspect will have a good shout at making the top half.
West Brom 1-1 Tottenham
Perhaps one of West Brom's better games of the season:
epl.compare_game_against_opponents('West Brom', 'Tottenham', '05/12/15')
Restricting Tottenham's shots, more than the average team. Tottenham of course will look at this as two points dropped, although it has now extended their unbeaten run to 14 games.
Newcastle 2-0 Liverpool
Others have pointed out the lack of intelligent analysis of this game in the mainstream media. Nice piece, fully agree with @jair1970 there. Still, it was a very good result for what has so far been a pretty awful Newcastle side. This game was probably pretty much a coin-flip, but that is better than they could reasonably have been expecting.
Everton 1-1 Crystal Palace
Seems like it might have been an exciting game. Two teams that will likely end up quite near each other in the league. But this game probably represents a slice of the league at the moment, in that Everton were slightly the better team, but the results is perhaps better for Palace. I think come the end of the season Everton will be disappointed if they remain in 9th equal whilst Crystal Palace will be delighted to remain in 6th equal. Note though, that they are only separated by a point. In fact 6th placed on 23 points are only 2 points ahead of Southampton on 21 points in 12th. Pretty tight around this upper-middle part of the table. How do they compare via team rating:
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'team_rating', rankings=False,
teams=['Liverpool', 'West Ham', 'Crystal Palace', 'Everton',
'Watford', 'Stoke', 'Southampton'])
So Stoke the outlier here, but on an upwards trend. Otherwise Liverpool and Southampton look like they are a level above the others. Note that Watford are 3rd in this group, so they probably at least deserve their current 9th equal place.
Home Form vs Away Form
The surprising result that Arsenal have performed better away than at home this season leads me to plot the difference in team ratings for home and away for each club. Now of course this may well be heavily influenced by which teams you have played home and away this season, but still it is interesting reading, with the league leaders performing best away from home relative to their home form:
pairs = [(team, epl.home_team_stats[team].team_rating - epl.away_team_stats[team].team_rating)
for team in epl.teams]
league_analysis.display_ranked_table(['Team', 'Home TR - Away TR'], pairs)
West Ham are also right in the middle of the table despite results suggesting some pretty encouraging away form, but of course we know to look deeper than results and a few of those away results looked, misleading at best. Still, only three teams actually have a better away team rating than their home team rating.
Thanks for reading again.
Comments
Comments powered by Disqus