On July 26, I was informed that I had been accepted to Phase II of the NBA Hackathon! They had also connected me with three amazing individuals who would be my team members for this challenge: Kevin Dewandeler, Boki Wang, and Charles Floyd. After submitting an abstract on August 4, we were accepted to the final phase of the NBA Hackathon: to execute on the abstract and present our project in Secaucus, New Jersey on September 21. The project that we presented on was creating a new, insightful metric for measuring player fatigue.
At the highest level of basketball, even a slight drop in performance may be the difference between victory and defeat. Therefore, it is essential to monitor a player’s fatigue level so that coaches can make the correct lineup decisions to optimize player performance and prevent over-exhaustion. However, while there are many studies that attempt to quantify the effects of fatigue on athletes, they are often flawed for several reasons. Firstly, several studies artificially induce fatigue in players by having them perform predetermined actions only for the sake of fatiguing them, thus failing to truly simulate the stresses that players undergo in an actual basketball game. Additionally, these studies often evaluate players using tests such as jumping protocols or self-reports, which are only tangentially related to performance on the basketball court. Finally, these studies do not provide fatigue measurements in real time, thereby denying NBA coaches of a potentially effective instrument with which they can use to make decisions as the game unfolds.
Therefore, we propose a novel method to track fatigue levels in NBA players in real time. To model player fatigue levels, we designed two metrics capable to capture the dynamic relationship between fatigue and recovery: 1) a fatigue index to indicate individual fatigue level at any time during the game, and 2) an accumulated fatigue function to model individual fatigue progression over a season.
Individualized fatigue index, FI, captures fatigue level for a player at any time point in the game. FI is a function of world time, defined as the actual playing time scaled by Play Ratio, the ratio between actual minutes played and the total time elapsed. It can be expressed as:
\[ FI = TIME_{play} * PlayRatio\]
\[PlayRatio = {TIME_{play} \over TIME_{play} + TIME_{rest}}\]
We modeled the accumulation of fatigue as the sum of exponentially decayed previous fatigue index values as of a player’s final appearance in a game.
\[F_t = \sum_{n=1}^{t-1} \tau^{t-n}FI_n\]
We chose tau by fitting models to Ft with average minutes played in the regular season as a controlling variable. As responders, we used accumulated features from the provided tracking data, including normalized maximum velocity, speed ratios such as distance traveled at fast speed over distance traveled at slow speed, and acceleration measures such as peak acceleration.
Two exemplar illustrations of the fatigue metrics are demonstrated below.
We wanted to demonstrate the value of these fatigue metrics by comparing them to the traditional minutes-played metric. As seen in the figure below, a negative trend is much more pronounced in the relationship between our fatigue index and kinematic variables than the relationship between minutes-played metric and kinematic variables. This finding highlights the advantage of our fatigue index over the traditional minutes-played metric.
Besides a clear negative relationship between our fatigue index and player movement, we also discovered negative relationships between our fatigue index and most player statistics. At a possession level, the logistic regression results showed a significant (p = 0.01) negative relationship between accumulated fatigue and most statistics: 2FG%, USG%, rebound%, steal%, assist%, turnover%, foul%, and block%.
The repercussions of the fatigue and accumulated fatigue index applicable for players and coaches in 3 specific ways:
Throughout this project, my team members have been extremely helpful and supportive. Even though we came into the project as strangers, we had multiple conference calls across different time zones to absolve data issues, communicate solutions, and create milestones. After only 8 weeks, we created a novel way for measuring fatigue levels of players in real-time, proved that our fatigue index was a more effective indicator of kinematic performance than using minutes-played, and showed that our fatigue index negatively correlated with player performance measured by box score and advanced statistics. It was a pleasure working with them and seeing this project through.