Breaking Down the 2015-2016 NBA Season

In this article, I will use Data Science / Machine Learning methodologies to break down the real factors separating the playoff from non-playoff teams. In particular, I used the data from to associate 44 predictor variables which each team: “FG” “FGA” “FG.” “X3P” “X3PA” “X3P.” “X2P” “X2PA” “X2P.” “FT” “FTA” “FT.” “ORB” “DRB” “TRB” “AST”   “STL” “BLK” “TOV” “PF” “PTS” “PS.G” “oFG” “oFGA” “oFG.” “o3P” “o3PA” “o3P.” “o2P” “o2PA” “o2P.” “oFT”   “oFTA” “oFT.” “oORB” “oDRB” “oTRB” “oAST” “oSTL” “oBLK” “oTOV” “oPF” “oPTS” “oPS.G”

, where a letter ‘o’ before the last 22 predictor variables indicates a defensive variable. (‘o’ stands for opponent. )

Using principal components analysis (PCA), I was able to project this 44-dimensional data set to a 5-D dimensional data set. That is, the first 5 principal components were found to explain 85% of the variance. 

Here are the various biplots: 

In these plots, the teams are grouped according to whether they made the playoffs or not. 

One sees from this biplot of the first two principal components that the dominant component along the first PC is 3 point attempts, while the dominant component along the second PC is opponent points. CLE and TOR have a high negative score along the second PC indicating a strong defensive performance. Indeed, one suspects that the final separating factor that led CLE to the championship was their defensive play as opposed to 3-point shooting which all-in-all didn’t do GSW any favours. This is in line with some of my previous analyses

Optimal Positions for NBA Players

I was thinking about how one can use the NBA’s new SportVU system to figure out optimal positions for players on the court. One of the interesting things about the SportVU system is that it tracks player (x,y) coordinates on the court. Presumably, it also keeps track of whether or not a player located at (x,y) makes a shot or misses it. Let us denote a player making a shot by 1, and a player missing a shot by 0. Then, one essentially will have data in the form (x,y, \text{1/0}).

One can then use a logistic regression to determine the probability that a player at position (x,y) will make a shot:

p(x,y) = \frac{\exp\left(\beta_0 + \beta_1 x + \beta_2 y\right)}{1 +\exp\left(\beta_0 + \beta_1 x + \beta_2 y\right)}

The main idea is that the parameters \beta_0, \beta_1, \beta_2 uniquely characterize a given player’s probability of making a shot.

As a coaching staff from an offensive perspective, let us say we wish to position players as to say they have a very high probability of making a shot, let us say, for demonstration purposes 99%. This means we must solve the optimization problem:

\frac{\exp\left(\beta_0 + \beta_1 x + \beta_2 y\right)}{1 +\exp\left(\beta_0 + \beta_1 x + \beta_2 y\right)} = 0.99

\text{s.t. } 0 \leq x \leq 28, \quad 0 \leq y \leq 47

(The constraints are determined here by the x-y dimensions of a standard NBA court).

This has the following solutions:

x = \frac{-1. \beta _0-1. \beta _2 y+4.59512}{\beta _1}, \quad \frac{-1. \beta _0-28. \beta _1+4.59512}{\beta _2} \leq y

with the following conditions:


One can also have:

x = \frac{-1. \beta _0-1. \beta _2 y+4.59512}{\beta _1}, \quad y \leq 47

with the following conditions:


Another solution is:

x = \frac{-1. \beta _0-1. \beta _2 y+4.59512}{\beta _1}

with the following conditions:


The fourth possible solution is:

x = \frac{-1. \beta _0-1. \beta _2 y+4.59512}{\beta _1}

with the following conditions:


In practice, it should be noted, that it is typically unlikely to have a player that has a 99% probability of making a shot.

To put this example in more practical terms, I generated some random data (1000 points) for a player in terms of (x,y) coordinates and whether he made a shot from that distance or not. The following scatter plot shows the result of this simulation:


In this plot, the red dots indicate a player has made a shot (a response of 1.0) from the (x,y) coordinates given, while a purple dot indicates a player has missed a shot from the (x,y) coordinates given (a response of 0.0).

Performing a logistic regression on this data, we obtain that \beta_0 = 0, \beta_1 = 0.00066876, \beta_2 = -0.00210949.

Using the equations above, we see that this player has a maximum probability of 58.7149 \% of making a shot from a location of (x,y) = (0,23), and a minimum probability of 38.45 \% of making a shot from a location of (x,y) = (28,0).

Optimal Strategies for the Clinton/Trump Debate

Consider modelling the Clinton/Trump debate via a static game in which each candidate can choose between two strategies: \{A,P\}, where A denotes predominantly “attacking” the other candidate, while P denotes predominantly discussing policy positions.

Further, let us consider the mixed strategies \sigma_1 = (p,1-p) for Clinton, and \sigma_2 = (q,1-q) for Trump. That is, Clinton predominantly attacks Trump with probability p, and Trump predominantly attacks Clinton with probability q.

Let us first deal with the general case of arbitrary payoffs, thus, generating the following payoff matrix:

\left( \begin{array}{cc} \{a,b\} & \{c,d\} \\ \{e,f\} & \{g,h\} \\ \end{array} \right)

That is, if Clinton attacks Trump and Trump attacks Clinton, the payoff to Clinton is a, while the payoff to Trump is b. If Clinton attacks Trump, and Trump ignores and discusses policy positions instead, the payoff to Clinton is c, while the payoff to trump is d. If Clinton discusses policy positions while Trump attacks, the payoff to Clinton is e, while the payoff to Trump is f, and if both candidates discuss policy positions instead of attacking each other, the payoff to them both will be g and h respectively.

With this information in hand, we can calculate the payoff to Clinton as:

\pi_c(\sigma_1, \sigma_2) = a p q+c p (1-q)+e (1-p) q+g (1-p) (1-q)

while the payoff to Trump is:

\pi_t(\sigma_1,\sigma_2) = b p q+d p (1-q)+f (1-p) q+h (1-p) (1-q)

With these payoff functions, we can compute each candidate’s best response to the other candidate by solving the following equations:

\hat{\sigma}_1 \in \text{argmax}_{\sigma_1} \pi_1(\sigma_1,\sigma_2)

\hat{\sigma}_{2} \in \text{argmax}_{\sigma_2} \pi_2(\sigma_1,\sigma_2)

where \hat{\sigma}_{1,2} indicates the best response strategy to a fixed strategy for the other player.

Solving these equations, we obtain the following:



Clinton’s best response is to choose p = 1/2.




Clinton’s best response is to choose  p = 1.

Otherwise, her best response is to choose p = 0.


While for Trump, the best responses are computed as follows:



Trump’s best response is to choose q = 1/2.



Trump’s best response is to choose q = 1.

Otherwise, Trump’s best response is to choose q = 0.

To demonstrate this, let us work out an example. Assume (for this example) that the payoffs for each candidate are to sway independent voters / voters that have not made up their minds. Further, let us assume that these voters are more interested in policy positions, and will take attacks negatively. Obviously, this is not necessarily true, and we have solved the general case above. We are just using the following payoff matrix for demonstration purposes:

\left( \begin{array}{cc} \{-1,-1\} & \{-1,1\} \\ \{1,-1\} & \{1,1\} \\ \end{array} \right)


Using the above equations, we see that if 0 \leq q \leq 1, Clinton’s best response is to choose p=0. While, if 0 \leq p \leq 1, Trump’s best response is to choose q =0. That is, no matter what Trump’s strategy is, it is always Clinton’s best response to discuss policy positions. No matter what Clinton’s strategy is, it is always Trump’s best response to discuss policy positions as well. The two candidates’ payoff functions take the following form:


What this shows for example is that there is a Nash equilibrium of:

(\sigma_1^{*}, \sigma_{2}^{*}) = (0,0).

The expected payoffs for each candidate are evidently

\pi_c = \pi_t = 1.

Let us work out an another example. This time, assume that if Clinton attacks Trump, she receives a payoff of +1, while if Trump attacks Clinton, he receives a payoff of -1. While, if Clinton discusses policy, while being attacked by Trump, she receives a payoff of +1, while Trump receives a payoff of -1. On the other hand, if Trump discusses policy while being attacked by Clinton, he receives a payoff +1, while Clinton receives a payoff of -1. If Clinton discusses policy, while Trump discusses policy, she receives a payoff of +1, while Trump receives a payoff of -1. The payoff matrix is evidently:

\left( \begin{array}{cc} \{1,-1\} & \{1,-1\} \\ \{1,-1\} & \{1,-1\} \\ \end{array} \right)

In this case, if 0 \leq q \leq 1, then Clinton’s best response is to choose p = 1/2. While, if 0 \leq p \leq 1, then Trump’s best response is to choose q = 1/2. The Nash equilibrium is evidently

(\sigma_1^{*}, \sigma_{2}^{*}) = (1/2,1/2).

The expected payoffs for each candidate are evidently

\pi_c = 1, \pi_t = -1.

In this example,  even though it is the optimal strategy for each candidate to play a mixed strategy of 50% attack, 50% discuss policy, Clinton is expected to benefit, while Trump is expected to lose.

Let us also consider an example of where the audience is biased towards Trump. So, every time Trump attacks Clinton, he gains an additional point. Every time Trump discusses policy, while Clinton does the same he gains an additional point. While, if Clinton attacks while Trump discusses policy positions, she will lose a point, and he gains a point. Such a payoff matrix can be given by:

\left( \begin{array}{cc} \{1,2\} & \{-1,1\} \\ \{0,1\} & \{0,1\} \\ \end{array} \right)

Solving the equations above, we find that if q = 1/2, Clinton’s best response is to choose p =1/2. If 1/2 < q \leq 1, Clinton’s best response is to choose p = 1. Otherwise, her best response is to choose p = 0. On the other hand, if p = 0, Trump’s best response is to choose q = 1/2. While, if 0 < p \leq 1, Trump’s best response is to choose q = 1. Evidently, there is a single Nash equilibrium (as long as 1/2 < p \leq 1):

 (\sigma_1^{*}, \sigma_{2}^{*}) = (1,1).

Therefore, in this situation, it is each candidate’s best strategy to attack one another. It is interesting that even in an audience that is heavily biased towards Trump, Clinton’s best strategy is still to attack 100% of the time.

The interested reader is invited to experiment with different scenarios using the general results derived above.

Basketball Paper Update

Everyone by now knows about this paper I wrote a few months ago:

Using data science / machine learning methodologies, it basically showed that the most important factors in characterizing a team’s playoff eligibility are the opponent field goal percentage and the opponent points per game. This seems to suggest that defensive factors as opposed to offensive factors are the most important characteristics shared among NBA playoff teams. It was also shown that championship teams must be able to have very strong defensive characteristics, in particular, strong perimeter defense characteristics in combination with an effective half-court offense that generates high-percentage two-point shots. A key part of this offensive strategy must also be the ability to draw fouls. 

Some people have commented that despite this, teams who frequently attempt three point shots still can be considered to have an efficient offense as doing so leads to better rebounding, floor spacing, and higher percentage shots. We show below that this is not true. Looking at the last 16 years of all NBA teams (using the same data we used in the paper), we performed a correlation analysis of an individual NBA team’s 3-point attempts per game and other relevant variables, and discovered: 

One sees that there is very little correlation between a team’s 3-point attempts per game and 2-point percentage, free throws, free throw attempts, and offensive rebounds. In fact, at best, there is a somewhat “medium” anti-correlation between 3-point attempts per game and a team’s 2-point attempts per game. 

The Mathematics of The Triangle Offense, Continued…

In a previous post, I showed how given random positions of 5 players on the court that they could “fill” the triangle. The main geometric constraint is that 5 players can form 3 triangles on the court, and that due to spacing requirements, these triangles are “optimal” if they are equilateral triangles.

Given that we now know how to fill the triangle, the question that this post tries to address is that how can players actually move within the triangle. The key is symmetry. Players must all move in a way such that the equilateral triangles remain invariant. Equilateral triangles have associated with them the D_{3} dihedral symmetry group. They are therefore invariant with respect to 120 degree rotations, 240 degree rotations, 0 degree rotations, and three reflections.

There are therefore six generators of this group:
\left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \\ \end{array} \right), \left( \begin{array}{cc} -\frac{1}{2} & -\frac{\sqrt{3}}{2} \\ \frac{\sqrt{3}}{2} & -\frac{1}{2} \\ \end{array} \right),\left( \begin{array}{cc} -\frac{1}{2} & \frac{\sqrt{3}}{2} \\ -\frac{\sqrt{3}}{2} & -\frac{1}{2} \\ \end{array} \right), \left( \begin{array}{cc} \frac{1}{2} & \frac{\sqrt{3}}{2} \\ \frac{\sqrt{3}}{2} & -\frac{1}{2} \\ \end{array} \right),\left( \begin{array}{cc} -1 & 0 \\ 0 & 1 \\ \end{array} \right),\left( \begin{array}{cc} \frac{1}{2} & -\frac{\sqrt{3}}{2} \\ -\frac{\sqrt{3}}{2} & -\frac{1}{2} \\ \end{array} \right).

In fact, the Cayley graph for this group is as follows:


For now, I will discuss how players can move within the action of 120 degree rotations. As in the previous posting, let the (x,y)-coordinates of player i be represented by (x^{i}, y^{i}), where i = 1,2,3,4,5. Then, under a 120 degree rotation, the player’s coordinates get shifted according to:

\boxed{x^{i}_{t+1} = \frac{1}{2} \left(-x^{i}_{t} - \sqrt{3}y^{i}_{t}\right), \quad y^{i}_{t+1} = \frac{1}{2}\left(\sqrt{3}x^{i}_{t} - y^{i}_{t}\right)}

This is a discrete dynamical system. In fact, it can be solved explicitly. Let x^i_{0}, y^{i}_{0} represent the initial coordinates of player i. Then, one solves the above discrete system to obtain:

\boxed{x^i_t =\frac{1}{2} e^{\frac{1}{3} (-2) i \pi t} \left[\left(1+e^{\frac{4 i \pi t}{3}}\right) x^i_0+i \left(-1+e^{\frac{4 i \pi t}{3}}\right) y^i_0\right], \quad y^{i}_{t} =\frac{1}{2} e^{\frac{1}{3} (-2) i \pi t} \left[\left(1+e^{\frac{4 i \pi t}{3}}\right) y^i_0-i \left(-1+e^{\frac{4 i \pi t}{3}}\right) x^i_0\right]}

Now, we can simulate this to see actually how players move within the triangle offense, forming equilateral triangles in every sequence:


This is running in continuous time, that is, endlessly. In future postings, I will update this to include the other symmetries of the dihedral D_{3} group. However, the challenge is that this symmetry group is non-Abelian, so it will be interesting to implement pairs of consecutive symmetry operations in a simulation that would still result in invariant equilateral triangles.

Hopefully, this post also shows why teams cannot really run “parts” of the triangle, as one player’s movement necessarily effects everyone else’s. This is something that Charley Rosen also mentioned in an article of his own.  

The Possible Initial States of The Universe

Most people when talking about cosmology typically talk about the universe in one context, that is, as a particular solution to the Einstein field equations. Part of my research in mathematical cosmology is to try to determine whether the present-day universe which we observe to be very close to spatially flat and homogeneous, and very close to isotropic could have emerged from a more general geometric state.

What is often not discussed adequately is the fact that not only has our universe emerged from special initial conditions, but the fact that these special initial conditions also must include the geometry of the early universe, and the type of matter in the early universe. Below, I have attached a simulation that shows how the early universe can evolve to different possible states depending on the type of physical matter parametrized by an equation of state parameter \gamma . In particular, some examples are:

  • \gamma = 0: Vacuum energy
  • \gamma = 4/3: Radiation
  • \gamma = 2: Stiff Fluid

Note: Click the image below to access the simulation!

In these simulations, we present phase plots of solutions to the Einstein field equations for spatially homogeneous and isotropic flat, hyperbolic, and closed universe geometries. The different points are:

  1. dS: de Sitter universe – Inflationary epoch
  2. M: Milne universe
  3. F: spatially flat FLRW universe – our present-day universe
  4. E: Einstein static universe

Note how by changing the value of \gamma , the dynamics lead to different possible future states. Dynamical systems people will recognize the problem at hand requires one to determine for which values of \gamma is F a saddle or stable node.