Even though vanilla RAPM performance was much better than I had anticipated, by adding a Bayesian adjustment we are able to increase stabilization and improve performance even further.
Bayesian Adjusted RAPM
For those who are unfamiliar, Bayesian Adjusted RAPM is a variation of RAPM where each player is assigned a prior based on additional information (e.g. playing time, team strength, box score stats, previous year performance, high school rank). Rather than RAPM regressing players towards an overall average player value, instead everyone is regressed towards their own player specific prior.
There are a number of different ways one can construct and weight a Bayesian prior. In order to evaluate different options, it is important to define a goal, as the ideal prior can vary based on your objective. To guide my evaluation process, I considered the following goals:
- Improve validity - measured through out of sample performance
- Improve reliability - measured by year to year player correlation
- Reduce the effects of collinearity - distinguish between players who always play together
- Reduce the effects of small samples - distinguish between players with a small number of possessions
- Keep RAPM pure - having RAPM be dominated by an overfit box score prior in order to minimize the error is not the goal
After extensive tinkering, I settled on a blended prior which equally weights the following1:
- Team Prior
- Incorporates the strength of a players team, the percentage of possessions a player played, and the interaction between the two
- Allows RAPM to regress low minute players to different values depending on team quality (e.g. a low minute bench player is likely better on UNC than UNC-Wilmington)
- Box Score Prior
Download complete RAPM results (for 2010-2019 seasons):
NBA Draft Picks
Select your favorite draft class to see how RAPM viewed future NBA players (in their final college season):
Check out the top-rated players in O-RAPM, D-RAPM, and overall RAPM.
Select your favorite team3 to see if RAPM results align with your expectations:
Both priors were both generated against a 9-year vanilla RAPM dataset. ↩
Filtered to players with >5 GP and >5 MPG to ignore BPM outliers ↩
The team views are currently limited to the top 50 teams (based on highest cumulative RAPM). Feel free to download the raw data to look closer at a team which wasn't included or reach out on Twitter if you think we should build an interactive view which allows you to pick your own custom filters. ↩