Evaluating Player and Team Offense

What I propose is a first attempt at developing  a mathematical model for evaluating a team of five players. There are assumptions within this model that are unrealistic, but I believe that progress can be made towards tackling these assumptions in the future.

The idea is directly inspired by the player shot charts which were popularized by Kirk Goldsberry during his time at Grantland.


What if we could summarize this data into a single number? We would lose a lot of the spatial details of where certain players and teams are most effective, but in turn we could have a new metric to compare (and hopefully predict) player and team offenses.

Let n represent the number of players in the league, and let each player in the league be indexed by i, where 1\leq i\leq n. Furthermore, let the expected point value of player i at position (x,y) on the court be represented by  EV_i(x,y) . Then we’ll define the player’s total offensive value as

TO(i) = \int_\mathbb{C} EV_i(x,y)\times p_i(x,y) d(x,y)

Where mathbb{C} represents the two dimensional court space, and p(x,y) represents the probability at which player can get to position (x,y). So TO(i) represents the value of player i on the entire court.

We can use this metric to define the best offensive player in the league. i.e. The best offensive player is defined by the index i that maximizes TO(i).

Defining the value of a player on offense is interesting by itself, but limiting. We can extend this model to look at the best 5-player offence. Let I\subset {1,...,n} be a 5-tuple, where each element is different. This will represent 5 different players in the league. Then the value any 5-team offense at any position on the court can be represented by \max_{i\in I} EV_i(x,y)\times p_i(x,y). That is, the value of the team at position (x,y) is the value whichever player has the best expected value at position (x,y). Similarly, the total team offense can be represented as

TTO(I) = \int_\mathbb{C} \max_{i\in I} EV_i(x,y)\times p_i(x,y) d(x,y)

With this formula we have a foundation to evaluate arbitrary team offenses. However there is still the decision on how to represent EV_i in a manner that is both calculable and useful.

For now let us represent EV_i as the expected number of points a player will score. This can be easily estimated based on a player’s sample performance at various points along the court. However, this doesn’t give us a complete picture of a player’s value on offense. Things get messy when we want to integrate something as simple as an assist, since it is also dependent on the other five players on the court. Then there are roles that a player performs that are even more difficult to assign value for, such as setting a screen or spreading the defense. For now we’ll have to settle for a more simplistic approach and hopefully tackle these other issues in the future. With this assumption we can estimate EV_i(x,y)\times  p_i(x,y) using standard kernel density estimation techniques.

A programmatic implementation will come soon.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s