Blog of Random Thoughts and Pictures

Top Assister Womens World Cup 2019

March 15th, 2021

As an alternative update to the the first challenge were the Mens World Cup 2018 data was looked at, this time it’s a view of the Womens World Cup 2019.

Again I’m going to look at players that assist a goal and at a glance there was one clear player with the most goal assists at this World Cup 2019, that’s Sherida Spitse from the Netherlands, according to Wikipedia, when I head to another site there is a 2 player tie, both with 4 assists so I’m off again to see what the data highlights.

There’s a fantastic FIFA Technical Report on the Womens World Cup 2019, and while there’s fine details on loads of aspects of the games , the one thing it doesn’t cover is a easy table to see the player with the most assists.

So back to the code base, and using the same code base from the previous challenge the top three that popped out were:

  1. Megan Rapinoe (USA) : 21
  2. Amel Majri (France) : 17
  3. Sherida Spitse (Netherlands) : 16

What actions did they perform

Megan Rapinoe was top of the class with 21 passes that lead to a shot on goal.

Figure 1: Megan Rapinoe passes that assisted a shot on goal

So not only was Rapinoe the Golden Boot winner with six goals, tying with Alex Morgan (6 goals) and Ellen White (6 goals), she also had three assists in the tournament, also tied with Morgan (3 assists), and finally captured the Golden Boot for top scorer on the second tiebreaker, doing it with fewer minutes played than Morgan. Her six goals and three assists also saw her win the Golden Ball as the best player in the tournament.

Figure 2: Expected goals from Megan Rapinoe passes

Clearly Rapinoe was involved in so much of the attacking actions of the USA team, and deserved the accolades it is only lightly worth noting that a number of Rapinoes actions were from set plays (corners and the like).

But this specific write up as about the top assistor, and the next player to look at in the category is Amel Majri of France.

Figure 3: Expected goals from Amel Majri passes

Majri was a left back in the French squad, but wore the number 10 shirt and certainly represented the creative flare of that shirt with 17 passes that lead to a shot on goal. It is also quite noticeable that Majri was very consistent as to where a ball into the box would be placed, a dream for the attacking 3 of France to predict.

However the award for top assistor in the Woman’s World Cup 2019 rightly goes to Sherida Spitse of the Netherlands, with 16 passes that lead to a shot on goal, of which 4 were goals.

Figure 4: Expected goals from Sherida Spitse passes

Spitse played as a right sided defensive (pivot) midfield player for the Netherlands, and here are video clips of all of Spitse assists. This first one is from a special tactic camera.
Of note there are a number of the Womens World Cup matches covered by tactic cameras.

Spitse (Netherlands) assist for a goal in the match Netherlands vs. Canada – Thursday June 20, 2019

Spitse (Netherlands) assist for a goal in the match Netherlands vs. Japan – Tuesday June 25, 2019

First assist for Spitse (Netherlands) in the match Italy vs. Netherlands – Saturday June 29, 2019

Second assist for Spitse (Netherlands) in the match Italy vs. Netherlands – Saturday June 29, 2019

FWWC 2019 – Set-piece specialist World Cup 2019 Sherida Spitse

Mini-challenge: Plotting Actions of an Assister

March 1st, 2021
  1. Think of a player who you enjoyed watching at the recent Men’s or Women’s World Cups.
  2. What actions did they perform that were important and why?
  3. Plot the actions and describe how the data supports or contradicts your own analysis.
  4. Write a short text using at most two figures that illustrate your point.

I’ll address this challenge with a view on a player (or set of players as it turns out), and later in the piece I’ll also share some code snippets on how the information was extracted from the StatsBomb data.

Think of a player

The first challenge and I must admit I’m floundering a little already as I can barely remember the Mens 2018 World Cup, bar the eventual winners, the golden boot winner and the best player award.

However the one thing I do like in football is the player assisting goals.
So for this challenge I thought I would look at the one player that came out on top in this regard at the 2018 World Cup and to state the important actions they performed.

However on first glance it is the case that there is a 16 way tie for the most goal assists at the World Cup 2018, well according to Wikipedia, when I head to another site there is a 19 player tie.

So the first thing I’ve done is take the Team names for all the players listed as the top assist players, have a look at all the passes, and especially all the passes that lead to a goal (or more so a shot on goal) and try and find out the top three players that assisted shots on goal.

This lead to a surprise, for me anyway, because the top three that popped out from this exercise was:

  1. Kieran Trippier (England) : 25
  2. Neymar da Silva Santos Junior (Brazil) : 24
  3. Philippe Coutinho Correia (Brazil) : 13

What actions did they perform

Kieran Trippier had 25 passes that lead to a shot on goal.

Figure 1: Kieran Trippier passes that assisted a shot on goal

 
However Kieran Trippier does not appear on the top player to assist goals chart because for all these passes only one of them lead to an assisted goal (for John Stones).

Now it’s time to look at the Expected Goal plot of the shots that happened, straight after Kieran Trippier gave in the pass for that shot. As far as I can tell Kieran Trippier could have had at least 2, if not 3, other assisted goals, however there are many of those passes that are into areas where the Expected Goal of that next shot is low.

 

Figure 2: Expected goals from Kieran Trippier passes

It is also worth noting that a larger number of Trippiers actions are from set plays (corners and the like).

So who was the top assistor at the 2018 World Cup, is it Neymar of Brazil ?

Neymar comes in second on the list gathered earlier, however he only assisted 1 goal also.

 

Figure 3: Expected goals from Neymars passes

 

Therefore it must be Philippe Coutinho, with 13 passes that assisted a shot on goal and 2 actual goal assists he is the top player in this category.

 

Figure 4: Expected goals from Philippe Coutinho passes

 

Or is he ? A little addendum, when I look to the positions that Neymars passes went into and the Expected Goal setting for each one of those shots taken after a Neymar pass, for me he should be the player of note.

 

FWC 2018 – Group E – SRB v BRA Neymar Jr

 

Figure 5: Scatter plot of expected goals from Top 3 player passes

 

A large number of Neymars assists for a shot are close to the goal (120 is the goal line) and central to the goal (40 is the centre of the goal).

Code snippets

I also want to share some of the code snippets that helped gather the data from Statsbomb in regards to this challenge.

Extracting data from competitions.json

I found it handy to extract the season_id from the competitions.json file and using this to find all the matches with teams I was interested in. This also helped to identify which matches in the events folder had to be picked up.

The Assisted Shot Id

When iterating through the passes finding the pass_assisted_shot_id was very handy, but there was a bit that stumped me for a while when a pass didn’t turn into an assisted shot then that id is set as NaN or not a number, which is a little off putting at first.
There are also times when there are duplicate entries for the pass_assisted_shot_id for related events which in one iteration of this code had Kieran Trippier (England) with 37 actions.

        #Find passes with pass_assisted_shot_id set
        if isinstance(passasid, str):
            #If the pass_assisted_shot_id is a nan (Not a Number) then
            # we don't want it. Usually the assisted_shot_id is some hex value
            playersAsisstingShotsOnGoal.append(tpassplayerdir)

Given that the dataframe of shots for the matches set’s the index name as the Id of the event, well I took me a while to figure how to re-access that index name when doing a compare later on in the code. Of course it’s simple when you see how with the .name.

    for shotOnGoal in matchesShotsOnGoal:
        if (shotOnGoal.name in assistedShotId):
            x=shotOnGoal['location'][0]
            y=shotOnGoal['location'][1]

Acknowledgements

Thanks to feedback from Eoin O’Brien, Eoin Slattery, Michael Kerley, Oliver Critchfield and David Sumpter as this has lead to a revision of the text and images.