Scouters and coaching staff have been using various descriptive statistics such as points per game, field goal percentage, rebounds per game, assists per game, etc. to evaluate different players (either of the roster or perspective recruits). Others have used more subtle metrics to measure the invisible effectiveness of players, with the story about Shane Battier being maybe the most well-known one. In this blog post I will introduce the use of ideas borrowed from the theory of fractals in quantifying the shot behavior of players and in particular, I will use the notion of fractal dimensionality.

Shot charts have been around for a long time, visualizing the shots taken, made and missed of a player. For example, below you can see the short chart of my fellow countryman, Greek Freak Giannis Antetokounmpo, from this past regular season.

As it is obvious, the shot chart is nothing more than a set of (2D spatial) points. The distribution of the locations from where a player attacks can potentially reveal latent information for the player’s performance and most importantly his potentials. A player who is taking shots from specific parts of the court might be *single-dimensional* and easy to defend, while a player with uniform spread of shots over the court might show more potential for becoming a superstar. Of course, the former case might just be a sign of a player that is focused on his strength and tries to avoid taking unnecessary shots. Simply put, the crude metric that I will introduce here is just one indicator and should be both refined and used in conjunction with other metrics.

The idea is to quantify exactly this *dimensionality *of the player based on the coordinates of his shot attempts on the court. While the topological dimensionality is 2 (since we essentially have a x and y coordinates), the dimensionality of the shooting points themselves is smaller since players do not shot from all the points on the floor (i.e., the short chart is not spatially uniform). Fractal dimensionality (see formal definition below) quantifies exactly this deviation from the topological dimensionality and has the benefit of obtaining non-integer values.

Using the NBA stats API, I collected the shot charts for all the active players in the 2015-16 team rosters and used those players with at least 150 shots over the whole regular season. The distribution for the fractal dimensionality of the shot charts of all the players – regardless of their position – is depicted in the following figure.

As we can see, there is some variation overall, but there is a peak observed between 1.2 and 1.3, with the majority of the mass of the distribution being between 0.9 and 1.5. This chart alone doesn’t tell us anything since the shot chart is “correlated” with the position of a player (e.g., a heavy center is not expected to be taking shots all over the court) and so might be the fractal dimensionality. Therefore, we analyze the fractal dimensionality on a per position basis.

As we can see the differences overall are small. However, they statistically significant. In particular, focusing on the “pure” positions (i.e., center, forward and guard), we performed a Kolmogorov-Smirnov test to compare the empirical cumulative distribution functions of the player fractal dimensionalities based on their position. The distribution for the guards is shifted to the right of both centers and forwards at the significance level 0f 0.001, translating to the guards having overall a larger fractal dimensionality. The forward positions exhibits a distribution shifted to the right of that of the centers and is also significant but at the 0.1 level (p-value = 0.06).

What is the importance of all of these? Identifying “outliers” in the respective positions. Is there a center with fractal dimensionality 1.5? What about forwards? These “outliers” might represent talent. Just as an example, Marc Gasol – classified as a center – has a fractal dimensionality of 1.501, while Dirk Nowitzki classified as forward has the maximum dimensionality among the forwards as well with 1.413.

Fractal dimensionality can form the core for metrics evaluating the versatility of players; e.g., Fractal Versatility Index (FVI). FVI aims to quantify the versatility of a player with respect to his attack’s spatial distribution. There are various data that can be used for this task including detailed spatio-temporal trajectories obtained from SportVU as well as shot charts like the ones described above. With being the shot chart of player , his FVI can be defined as the tuple . A player that attacks only from specific locations on the floor will exhibit low dimensionality, while an “all-around’’ threat will have higher dimensionality (ideally close to the topological dimensionality of the floor, i.e., 2). Furthermore, the scale will allow us to get an estimate for the *range* of the threat and possibly differentiate between two players with similar but different actual behavior.

Of course, one might wonder why use the whole shot chart and not the one capturing the shots made, or the shots missed. I do not have an answer; this is just a showcase that ideas from fractals can be used to sort through players and focus attention to specific ones (instead let’s say going over all the shot charts of all the perspectives)!

Footnotes Fractal dimension definition.Consider a cloud of points With being the fraction of pairs of points from that have distance smaller or equal to , behaves like a fractal with intrinsic fractal dimension in the range of scales to iff: . An infinitely complicated set would exhibit this scaling over all possible ranges of . However, real objects are finite and the equation holds only over a specific range of scales. For instance, a cloud of points uniformly distributed the unit square, has intrinsic dimension , for the range of scales , where is the smallest distance among the pairs of .

I think the chart was created with ggplot2, so I guess the fractal dimensionality was calculated in R too.

May I ask what was the function used? On a similar note and regarding your “Sports and Fractals” talk, are there any R code snippets available that can reproduce the “Fractal Versatility Index” chart (slide 22 of 34)?

Thank you very much!

LikeLike

Hi Manuel. Thanks for the comment. In fact I used a Perl script to calculate the fractal dimensionality. If you want I can send you the Perl code. However, R has a library to calculate fractal dimensionalities — https://cran.r-project.org/web/packages/fractaldim/fractaldim.pdf. However, it did not include the Hausdorff that I wanted to use and I felt it made the most sense in this analysis.

LikeLike

Thank you for the response. fractaldim seems to work only with either one-dimensional data (timeseries) or square-matrices. If it would be easy for you, you may post the Perl script, so that there is proper attribution. Thank you again

LikeLike

Sure; here it is: http://www.cs.cmu.edu/%7Echristos/software.html It is the “FracDim”.

LikeLike