After a couple special topics posts in Sketching and Voronoi Tessellation, we take a step back and look at the basic mechanics of player motion: **position**, **velocity**, and **acceleration**. Understanding computation and estimation of such quantities allow us to perform more important calculations such as **trajectories**, **coverage**, and **crashing**.

The easiest way to capture these quantities are through the use of **kinematics**. Kinematics is a calculus-based representation of physical movement in the field of physics.

## Basic Example: Transition

Consider a situation where a team collects the ball after a drive and score. In this example, let’s consider a **Russell Westbrook** drive to the basket against the **San Antonio Spurs**. Westbrook is able to convert the basket, with two crashing offensive rebounders. To generate spacing, the **Oklahoma City Thunder** spreads the court with a corner three position and a high wing, who is now sagging in after the converted score in an effort to check his man on **transition**. Let’s quickly illustrate this.

Here, Westbrook’s momentum carries him out of bounds as a post defender collects the basketball to quickly step out of bounds. The point guard for the Spurs, **Tony Parker**, slips between the defenders on a curl to get a pass and initiate a fast-break in attempts to catch the Thunder defense sleeping.

In an effort to do this, realizing the sagging wing, **Danny Green** sets the screen on the corner three player to free **Kawhi Leonard** for a fast-break. This leaves the sagging wing for Oklahoma City to play catch-up. The transition immediately turns into a 2-on-1 or a 1-on-**none** fast break depending on the **kinematics** **of the players on the court**.

The **primitive question** is this: Suppose that sagging wing is **Andre Roberson**. Is he able to catch **Kawhi Leonard**? The **secondary question** is this: How do we **adjust** the offensive and defensive scheme to **optimize **the team’s **defensive **or **offensive posture**?

## Part One: Position

The most important aspect of the above example comes down to **acceleration**. Acceleration is the quantification of a player’s ability to change their **velocity**. Similarly, velocity is the quantification of a player’s ability to change their **position**. Therefore, in effort to understand acceleration, we must understand a player’s velocity and, in turn, position.

A player’s **position** is their location on the court. This is simply the **x,y-coordinate** represented by some coordinate system. Typically, the **origin** of the basketball court is the ”lower left-hand” corner of the court. If we use feet as our unit if measurement, we then have a rectangle with a maximum value of **50** for the **y-axis** and a maximum value of **94** for the **x-axis**.

We consider position as a **vector**. This means we represent position by its x,y-coordinates, where the tail of the vector is the origin and the head of the vector is the player.

## Part Two: Velocity

**Velocity** is a **vector** quantity that captures the **speed** and **direction** of a player. It is viewed as the **derivative** of position. To be described through a derivative, the notion of **time** must be introduced. Here, time is defined as the quantification of the sequence between sampling between two points. In high school and college, we learned this as ”taking two points and checking the **rate of change** as the distance between those two points converges to **zero**.” Therefore, rate of change is viewed as time.

Let’s define position by the vector as:

Here, **r_x** and **r_y **are the x- and y- coordinates of a player, respectively. Velocity is then defined as

This definition identifies the rates of change in both the x-direction (along the sideline) and the y-direction (along the baseline). While the definition may not yield much light, especially if you’re not familiar with calculus, we want to emphasize the point that velocity is a **vector** that looks at the **rate of change** of a player.

## Part Three: Acceleration

**Acceleration** is the quantification of changes in a player’s acceleration. For instance, if a player is stationary and starts to move, their acceleration is positive. As they speed up, their acceleration continues to be **positive**. However, as the player reaches their physical apex in speed (or becomes tired), they begin to slow down. While their **velocity is positive**, they are in reality **slowing down** and therefore yielding **negative acceleration**. The equation is given by:

Therefore, acceleration is viewed as the second derivative of position with respect to time; as it is the first derivative of the velocity vector.

This means, ultimately, we are interested in acceleration of a player. Understanding acceleration, we immediately know how velocity changes, and in turn, understand the curvature of position. Unfortunately, we obtain only positions and need to identify a methodology for **estimating velocity and acceleration**.

## Incorporating Time: Kinematics

As we incorporate time, we can now write the position vector as

Taking the derivative, we obtain the velocity vector

Similarly, the acceleration vector is given by

### Step One: Constant Acceleration

If we assume the goofiest motion on the court: **constant acceleration**, we can easily recover the equations for the derivatives. To understand this goofy motion, a positive constant acceleration means the **player gets faster and faster** as time plays out. Similarly, if acceleration is **zero**, the **player maintains this exact same velocity**.

Let’s define this constant acceleration as **a_x** for the x-direction. Here, we will look only at the x-coordinate; the y-coordinate is analogous.

The anti-derivative of **a_x** is given by

Here, we included a term of **v_x0**. Why does this term exist? We are interested in understanding the velocity of a player at a time, t. Taking the anti-derivative of acceleration only gives us the **change in velocity**; not the velocity. To obtain the velocity, we must use an **initial condition**. The initial condition, **v_x0**, is therefore the initial velocity of a player.

Continuing in this manner, the position is given by

These three equations: constant acceleration, anti-derivative of acceleration, and anti-derivative of velocity are the **kinematics equations**.

### Step Two: Instantaneous Acceleration, a(t)

As acceleration is not constant, we can **condition** on time to obtain an **instantaneous constant**** acceleration** over the sampling period. For **SportVU** tracking data, this instantaneous sampling period is every **0.04 seconds**. Therefore, for unknown instantaneous acceleration, we look at **average acceleration** over the time period of interest. This is still a time-evolving acceleration that is non-constant, however it is viewed as a piece-wise polynomial of acceleration.

Plugging this in to our equations above, we obtain the **Kinematics Equations:**

## Estimating Velocity from Position (Naive)

Since the game has already played out, we can cheat and leverage all data points from the game. We will call this the **naive method**. Using this methodology, we can use **average velocity** at a point. For instance, we are interested in **Andre Roberson’s **acceleration in recovering **Kawhi Leonard** on a fast-break.

In this case, as the break starts at time **t**, we **do not want to measure the velocity at time t**. This seems odd to say, but calculating velocity with Roberson’s position as an endpoint **actually calculates a velocity prior to that position**.

Instead, we take time points **t+1 **and **t-1** and observe the positions, **x(t+1) **and **x(t-1)**. Since the time steps are small, 0.04 seconds, we can get away with this approach. The average velocity is then given by

**Note: **While we are using the t-1, t, and t+1 notation, these are simply **indices**. Here, t-1 = t_0, t = t_0 + 0.04, and t+1 = t_0 + 0.08.

## Estimating Acceleration From Position (Naive)

In a similar fashion, we can compute average acceleration from position estimates. We can compute average acceleration in the same manner as computing the average velocity from position. In this case, we have

Therefore, we must require knowledge of the movement of Roberson over a five-point sequence in order to naively recover the acceleration at time, t.

## Application: Fast Break Locations

If we apply this simple methodology to the Roberson-Leonard attack, we would prefer to **learn** the **expected** acceleration curves of a player. Instead, in this case, we only have the single geo-tracks; therefore we can effectively only apply the naive method. Let’s start by isolating Roberson and Leonard on the transition:

We can identify the difference in acceleration changes between Roberson and Leonard by looking directly at the separation between the player dots. We see, visually, that Leonard has a higher acceleration. However, let’s actually apply the naive method.

Smoothing the acceleration using the naive method, we find that Leonard has a much higher acceleration; in part due to breaking first in the transition. We see that Roberson starts later and manages to close the gap and decelerates at roughly the rate rate as Leonard.

As we see, Leonard accelerates and maintains a higher velocity than Roberson, however Leonard’s initial position allows Roberson to close in around mid-court. With the expansion into further tracking data, we can gain better insight into understanding **terminal velocity** of a player. That is, the maximum speed a player can reach before decelerating. If Leonard’s is indeed higher, then he may get the extra step and find himself with a lead pass from Parker for a lay-up.

## Next Steps…

We saw that we can begin to model player movement by understanding their kinematics. While we used a naive method to estimate motion, ideally we would like to understand **instantaneous movement** as opposed to **look-back movement**. In this article, we used the future observations to look back at player movement. If we want to identify instantaneous movement, we should move to a more familiar model for motion: **Kalman filtering** (parametric hierarchical models) or **particle filtering** (nonparametric bootstrap hierarchical models).

Pingback: Weekly Sports Analytics News Roundup - October 31st, 2017 - StatSheetStuffer

Pingback: Kinematics of Player Motion by Squared Statistics | Advance Pro Basketball

Pingback: Stochastic Tracking | Squared Statistics: Understanding Basketball Analytics