EPL 24-25 October 2015

EPL 24-25th October

Weekly look at the weekend games in the EPL:

In [1]:
%matplotlib inline
import league_analysis
from IPython.display import display, HTML
epl = league_analysis.epl
weekend_matches = league_analysis.get_matches(epl, '24/10/2015', '25/10/2015')
league_analysis.display_given_matches(weekend_matches)
Home Away
Team Arsenal Everton
Goals 2 1
Shots 20 10
SOT 5 5
Home Away
Team Aston Villa Swansea
Goals 1 2
Shots 9 11
SOT 3 4
Home Away
Team Leicester Crystal Palace
Goals 1 0
Shots 12 9
SOT 3 4
Home Away
Team Norwich West Brom
Goals 0 1
Shots 16 7
SOT 3 4
Home Away
Team Stoke Watford
Goals 0 2
Shots 12 13
SOT 1 3
Home Away
Team West Ham Chelsea
Goals 2 1
Shots 12 8
SOT 5 4
Home Away
Team Bournemouth Tottenham
Goals 1 5
Shots 11 14
SOT 3 9
Home Away
Team Liverpool Southampton
Goals 1 1
Shots 15 8
SOT 2 3
Home Away
Team Man United Man City
Goals 0 0
Shots 6 6
SOT 1 1
Home Away
Team Sunderland Newcastle
Goals 3 0
Shots 9 21
SOT 3 8

Manchester United 0-0 Manchester City

A very even game, neither side giving up much. Manchester United typically have not shown much ambition to get a lot of shots, prefering to cultivate excellent chances whilst restricting their opponents. Manchester City on the other hand have tended to bombard their opponents. In this sense United will be pretty happy with how they restricted their Manchester neighbours.

Having watched the game I felt City had the better of the first half and United the second. The best save of the match was Joe Hart to his left near the post and United also managed to hit the bar with a clever attempt at a lob. But overall, a game that could be easily forgotten.

Sunderland 3-0 Newcastle

Something of a bottom of the table clash. These two teams have been amoung the worst in the premier league. In terms of the score line a pretty convincing home victory will appease many Sunderland fans, and may well have Steve McClaren wondering how much longer he will be Newcastle manager. A look at the shot numbers though would result in a very different conclusion. There may be some score-line effects here but even still Newcastle demonstrate that they can produce shots/chances when behind, at least against fellow strugglers.

These two teams both currently look on course for relegation, one derby result is not going to change that, what is required is a longer term change in their underlying numbers, and currently Newcastle look a bit more likely to do that.

Similar Games:

There have so far been 16 (of 100) games that have resulted in one team winning by 3 or more goals:

In [2]:
matches_so_far = league_analysis.get_matches(epl, '01/08/2015', '25/10/2015')
high_result_matches = [m for m in matches_so_far if abs(m.FTHG - m.FTAG) >= 3]
league_analysis.display_given_matches(high_result_matches)
display(HTML('There have been {0} matches in total'.format(len(matches_so_far))))
Home Away
Team West Brom Man City
Goals 0 3
Shots 9 19
SOT 2 7
Home Away
Team Southampton Everton
Goals 0 3
Shots 17 10
SOT 4 4
Home Away
Team Man City Chelsea
Goals 3 0
Shots 18 10
SOT 8 3
Home Away
Team Liverpool West Ham
Goals 0 3
Shots 13 12
SOT 1 5
Home Away
Team Southampton Norwich
Goals 3 0
Shots 23 6
SOT 8 1
Home Away
Team Leicester Arsenal
Goals 2 5
Shots 16 26
SOT 7 12
Home Away
Team Man United Sunderland
Goals 3 0
Shots 12 9
SOT 7 4
Home Away
Team Tottenham Man City
Goals 4 1
Shots 15 22
SOT 8 8
Home Away
Team Man City Newcastle
Goals 6 1
Shots 23 6
SOT 11 4
Home Away
Team Arsenal Man United
Goals 3 0
Shots 12 9
SOT 5 5
Home Away
Team Everton Man United
Goals 0 3
Shots 12 10
SOT 3 7
Home Away
Team Man City Bournemouth
Goals 5 1
Shots 15 5
SOT 11 1
Home Away
Team Watford Arsenal
Goals 0 3
Shots 8 17
SOT 1 6
Home Away
Team Newcastle Norwich
Goals 6 2
Shots 11 18
SOT 6 6
Home Away
Team Bournemouth Tottenham
Goals 1 5
Shots 11 14
SOT 3 9
Home Away
Team Sunderland Newcastle
Goals 3 0
Shots 9 21
SOT 3 8
There have been 100 matches in total

There have only been 6 games in which a team has won by 3 or more goals despite taking few shots:

In [3]:
def lower_shots_wins(match):
    return ((match.HS > match.AS and match.FTAG > match.FTHG) or
            (match.HS < match.AS and match.FTAG < match.FTHG))
win_shots = [m for m in high_result_matches if lower_shots_wins(m)]
league_analysis.display_given_matches(win_shots)
Home Away
Team Southampton Everton
Goals 0 3
Shots 17 10
SOT 4 4
Home Away
Team Liverpool West Ham
Goals 0 3
Shots 13 12
SOT 1 5
Home Away
Team Tottenham Man City
Goals 4 1
Shots 15 22
SOT 8 8
Home Away
Team Everton Man United
Goals 0 3
Shots 12 10
SOT 3 7
Home Away
Team Newcastle Norwich
Goals 6 2
Shots 11 18
SOT 6 6
Home Away
Team Sunderland Newcastle
Goals 3 0
Shots 9 21
SOT 3 8

Of these:

  • Sunderland were outshot by 12 shots, the next highest were outshot by 7 shots, Everton, Tottenham, and Newcastle.
  • All were equal or better via shots on target, so Sunderland are the only team to have won by 3 or more goals despite having fewer shots on target, and 3-8 is not even close.

In fact, only 13 matches, including Sunderland vs Newcastle have had the side with fewer shots on target winning, of these, Only 4 had a goal difference of more than 1. The other three matches with a goal difference of more than had a SOT difference of exactly 1 or 2.

In [4]:
def lower_sots_wins(match):
    return ((match.HST > match.AST and match.FTAG > match.FTHG) or
            (match.HST < match.AST and match.FTAG < match.FTHG))
win_shots = [m for m in matches_so_far if lower_sots_wins(m)]
league_analysis.display_given_matches(win_shots)
Home Away
Team Man United Tottenham
Goals 1 0
Shots 9 9
SOT 1 4
Home Away
Team Arsenal West Ham
Goals 0 2
Shots 22 8
SOT 6 4
Home Away
Team West Brom Chelsea
Goals 2 3
Shots 15 15
SOT 6 5
Home Away
Team Chelsea Crystal Palace
Goals 1 2
Shots 26 13
SOT 9 6
Home Away
Team Man United Liverpool
Goals 3 1
Shots 9 8
SOT 3 4
Home Away
Team West Ham Newcastle
Goals 2 0
Shots 17 14
SOT 3 4
Home Away
Team Man City West Ham
Goals 1 2
Shots 27 6
SOT 8 3
Home Away
Team Newcastle Watford
Goals 1 2
Shots 15 13
SOT 5 4
Home Away
Team Southampton Man United
Goals 2 3
Shots 15 10
SOT 8 3
Home Away
Team Stoke Bournemouth
Goals 2 1
Shots 8 11
SOT 5 6
Home Away
Team West Brom Sunderland
Goals 1 0
Shots 8 9
SOT 1 2
Home Away
Team Leicester Crystal Palace
Goals 1 0
Shots 12 9
SOT 3 4
Home Away
Team Sunderland Newcastle
Goals 3 0
Shots 9 21
SOT 3 8

Overall then, if I were a Sunderland fan I would enjoy the derby victory for what it is, rather than for what it may signal in the future.

Aston Villa 1-2 Swansea

This turned out to be the last game in charge for Tim Sherwood. From the stats Swansea had the better of the play and whilst they may not have dominated their hosts, it can hardly be said to have been an undeserved victory.

Swansea are a decent club, but to lose at home to Swansea in such a routine manner is probably the most disheartening element for Villa fans. Swansea are good enough that, on their day, they could pick up a surprising away victory at the Etihad, but it would be something of a shock, and likely involve beating the shot numbers (that is winning despite having fewer shots/shots on target). The fact that Swansea were likely favourites going in to the match, suggests Villa are in deep trouble. Whoever takes over from Tim Sherwood will have their work cut out.

A small non-fact-based comment. To me, it seems unlikely that Sunderland's woes are much attributable to Dick Advocaat, so I'm skeptical that a change in manager will have much effect for Sunderland. At Villa, it seems more plausible to me that a change in manager will indeed usher in a change of fortune, but they aren't going to be hitting the top half of the table, this is about avoiding relegation.

Bournemouth 1-5 Tottenham

I'll admit to a bit of a soft spot for Bournemouth. They took something of a beating here this week. However, the shot statistics show that this was probably unflattering to Bournemouth who took a very early lead, only to then give up 5 goals. But it was 5 goals from 14 shots, 9 of which were on target. Tottenham have started to pick up and we'll see below their PDO has improved of late. Only two matches this season have produced 5 or more goals from 14 or fewer shots:

In [5]:
def five_goals_from_fourteen_shots(match):
    return ((match.HS <= 14 and match.FTHG >= 5) or (match.AS <= 14 and match.FTAG >= 5))
relevant_matches = [m for m in matches_so_far if five_goals_from_fourteen_shots(m)]
league_analysis.display_given_matches(relevant_matches)
Home Away
Team Newcastle Norwich
Goals 6 2
Shots 11 18
SOT 6 6
Home Away
Team Bournemouth Tottenham
Goals 1 5
Shots 11 14
SOT 3 9

Which is not that surprising since of course 5 goals are not scored that often no matter how many shots. However, for all league data I have (top 4 English leagues plus Scottish Premiership, since season 2010-2011), it has occured just 138 times in 12003, or about one percent of the time.

In [6]:
league_analysis.get_fraction_of_matches(five_goals_from_fourteen_shots)
Out[6]:
(138, 12003)

Having said that, when teams do score five goals or more, it's not that rare that they do so with 14 shots or fewer. Here we see that only 336 games have involved either team scoring five or more goals. So in 138 of the 336 matches, or a bit over a third of the time, that a team scores 5 or more goals they do so with 14 or fewer shots. This suggests that a 5 goal game is quite often the result of a good conversion rate rather than a complete dominance. When a team creates a 3 goal advantage they may well have less offensive ambition and hence only score additional goals from very good chances, but that's a bit speculative.

In [7]:
def five_goals(match):
    return match.FTHG >= 5 or match.FTAG >= 5
five_goal_matches = league_analysis.get_all_matches(filter_fun=five_goals)
league_analysis.get_fraction_of_matches(five_goals_from_fourteen_shots, five_goal_matches)
Out[7]:
(138, 336)

Small aside, there were 2 games in which both teams scored 5 or more goals, both of which were 5-5 draws and both of which had one team with fewer than 14 shots. In the above these would have been counted in the 138, but should really be counted twice in the 336, so it should really be 138 from 338.

In [8]:
def both_five_goals(match):
    return match.FTHG >= 5 and match.FTAG >= 5
league_analysis.display_given_matches(league_analysis.get_all_matches(filter_fun=both_five_goals))
Home Away
Team Chesterfield Crewe
Goals 5 5
Shots 16 8
SOT 8 8
Home Away
Team West Brom Man United
Goals 5 5
Shots 15 12
SOT 8 8

Arsenal 2-1 Everton

Arsenal like Tottenham have started to see their fruits of the labour more in recent weeks. Generally speaking Arsenal have been very good, but have lost/drawn the odd game that they have dominated, meaning that their points total and league position weren't quite reflective of how good they were. However their luck, or conversion, has begun to pick up, a bit like Tottenham, in the following chart we depict rank in PDO in the league. Remember, we take PDO has some measure of the amount of luck a team has received, so a higher PDO means more good luck. Of course it's not flawless but it can help show teams that are artificially high or low in the league. Both Tottenham and Arsenal start pretty low but have started to pick up of late.

In [9]:
after_game_no_dicts = league_analysis.collect_after_game_dicts(epl, '01/08/2015', '26/10/2015')
teams = ['Tottenham', 'Arsenal', 'Watford', 'Liverpool',
         'Southampton', 'Sunderland', 'Chelsea', 'Bournemouth']
league_analysis.plot_changing_stats(epl, after_game_no_dicts, 'pdo', rankings=True, teams=teams)

In contrast Sunderland, who get a big rise in PDO this week after their (arguably lucky) win against Newcastle, can't really blame their league position on bad luck. Even before this week they have been steadily mid-table or above in terms of PDO. Similarly Chelsea have been above mid-table for PDO for most of the season, albeit on a steadily decreasing path (which is likely just a statistical quirk). Finally note also Liverpool and Southampton, both have had pretty rotten 'luck' all season, so don't be surprised to see them improve, a fact which will no doubt be attributed to Klopp's arrival. Which isn't to say he won't have some positive effect outside of what is observable in PDO. Bournemouth have just now overtaken Southampton has the team with the lowest PDO.

Leicester 1-0 Crystal Palace, Norwich 0-1 West Brom

Interesting matches, both quite evenly matched. Both home teams had a higher shot count, but a lower shots on target count (albeit only 3 to 4).

Leicester continuing a good run and arguably deserved this, although of course were helped by an early second half red card for Crystal Palace.

Norwich will feel pretty agrieved to have lost such a game at home, but West Brom are typically out-performing their shot numbers, having a points-to-shots ratio behind only Manchester United in the league. Note that this ratio is typically low for teams with few points, because they lose a lot of games in which they gain zero points, but typically have more than zero shots.

In [10]:
pairs = [(stats.teamname, stats.points / float(stats.shots_for))
         for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'Points/Shots'], pairs)
Position Team Points/Shots
1 Man United 0.19047619047619047
2 West Brom 0.14736842105263157
3 West Ham 0.14492753623188406
4 Leicester 0.12666666666666668
5 Crystal Palace 0.12
6 Man City 0.11891891891891893
7 Stoke 0.11650485436893204
8 Arsenal 0.11224489795918367
9 Everton 0.1111111111111111
10 Tottenham 0.1069182389937107
11 Watford 0.10483870967741936
12 Swansea 0.09774436090225563
13 Liverpool 0.0958904109589041
14 Southampton 0.09271523178807947
15 Chelsea 0.07746478873239436
16 Bournemouth 0.0761904761904762
17 Sunderland 0.06451612903225806
18 Newcastle 0.06060606060606061
19 Norwich 0.06040268456375839
20 Aston Villa 0.037037037037037035

West Ham 2-1 Chelsea

Not sure what more to write about these two teams. West Ham do seem to be riding some kind of wave. Charitably we might call this a wave of efficiency, uncharitably we would call it a wave of luck. Personally think the latter, and that by the end of season West Ham will be in the bottom half of the league, but, similar to last season, they have probably amassed enough points so far to avoid much of a relegation battle, unless their efficiency seriously drops off. In addition, their underlying numbers might be better if they hadn't spent as much time in the lead of matches as they have.

Chelsea are just not performing well. It seems strange to talk of West Ham riding their luck when they have beaten the champions and done so with better shot counts for both total shots and shots on target. If we didn't know that Chelsea were the champions, and employers of some of the most expensive and best talent in the league, we would not be particularly surprised that West Ham out shot Chelsea at home.

Stoke 0-2 Watford

Nice and timely away victory for Watford. They deserved it too. Stoke have brought in some talented players but they are yet to reap much benefit. I'd be worried if I were a Stoke fan, here I rank the teams on the addition of their total shot ratios and their shots on target ratios, Stoke are behind even Aston Villa:

In [12]:
pairs = [(stats.teamname, stats.tsr + stats.sotr)
         for stats in epl.team_stats.values()]
league_analysis.display_ranked_table(['Team', 'TSR+SOTR'], pairs)
Position Team TSR+SOTR
1 Man City 1.4377323420074348
2 Arsenal 1.2478861087144089
3 Southampton 1.21610019472473
4 Tottenham 1.2078947368421051
5 Liverpool 1.1481699538808754
6 Man United 1.0796615905245348
7 Leicester 1.0470664087685364
8 Swansea 1.0435937636094417
9 Norwich 1.0090895025914752
10 West Ham 0.9728781856441431
11 Chelsea 0.9501465201465202
12 Bournemouth 0.9429577464788732
13 Watford 0.909973939824686
14 Crystal Palace 0.9005376344086022
15 Everton 0.899438202247191
16 Aston Villa 0.8294219904389396
17 Stoke 0.8110290093048713
18 West Brom 0.7935439046550158
19 Newcastle 0.757066230456119
20 Sunderland 0.6717939854821984

Liverpool 1-1 Southampton

That same table shows why Liverpool fans needn't be quite as upset as they probably are. Southampton are also doing perfectly fine. Both could do with a bit of an uptick in luck/efficiency.

That's all for this week. Thanks for reading this far.

Comments

Comments powered by Disqus