Building My NBA Win Projections and RPM Projections for the Whole League

Here’s how I did it, in some level of detail

I like projecting the NBA. I’m not the best at it and I mostly build on the work of others who are more sophisticated than me, but I enjoy the exercise and it’s fun to do for me,as a big nerd. One frustration I have often had with projections is how black box-y they can sometimes be. I like to know exactly how people do certain things and why they do them. I like poking at the assumptions they make and wondering if those assumptions make sense. I figure some of you out there might be like me, so I figured I would share what I did to come up with my projections for the player level and then explain how I fed that through the NBA schedule to get my win projections for this season.

Real Plus-Minus is a combination of boxscore information and regularized adjusted plus-minus (“RAPM”). The rough weights for the components are that RPM is around 65% RAPM and 35% BoxScore. That’s an inexact approximation, but it’s close enough to be quite useful. The exact makeup of the BoxScore component is not completely known, but we do know that it is some variant of a statistical plus-minus (“SPM”), which is to say, it is a summation of good and bad boxscore statistics to try to estimate plus-minus impact. One of the better implementations of a statistical plus-minus comes from Neil Paine of Five Thirty Eight, and formerly of Sports-Reference.com. Neil’s SPM is on a per 36 minute scale, adjusted to a per 100 possessions pace, which made it very useful for the inputs I wanted to use. My method for projecting player performance from a boxscore perspective was simply to nab Basketball-Reference’s Simple Projection numbers, which are per 36 projections for all the basic boxscore statistics.

Unfortunately, these projections are not adjusted for pace. But I could handle that. I simply went to the NBA Stats page and grabbed individual player pace for the last three years and ran the same methodology as the Simple Projection system (.6/.3/.1 weights for the pace numbers, from most recent to least recent year, and with a mean regression component of +1000 minutes of average pace play). After getting to individual player pace numbers to match the SPS numbers for each player, I could normalize them all to a per 100 possession environment. Then I just pushed those numbers (plus MPG guesses from Kevin Pelton) through Neil’s formula to get an SPM estimate. I paired that with single year RAPM for the last 3 years (2017, 2016, and 2015) weighted again using the same method as the Simple Projections, 60%, 30%, and 10% with additional mean regression tossed in. I paired the SPM numbers with the RAPM estimate using the 35% and 65% weighting I mentioned previously and that got me my list of player RPM projections (with the exception of rookies, for whom I used my rookie model), which you can see in the link below.

https://docs.google.com/spreadsheets/d/1B0aD3XgZsllTGxXh8QK4Bk11yDmVDWToEs9l6IMDsDk/edit?usp=sharing

Not surprisingly, Stephen Curry and LeBron are in a tier by themselves. This feels about right, especially given the weight to the last few years.

The final step was to put all these player projections into teams via minutes and games played projections (again via Kevin Pelton) to determine team strength and then feeding those ratings through the schedule to determine my final wins projections, which are here:

My projections are significantly lower on the Celtics than conventional wisdom and their Vegas Over/Under. This system is also probably a bit high on the Cavaliers, given their roster fit issues and turnover. Isaiah Thomas’s minutes will also play a huge part in how close they get to 60 wins. I wouldn’t bet on it. Speaking of betting, here are my five favorite bets, based on my projections relative to Vegas:

  • Celtics Under (55.5)
  • Clippers Over (43.5)
  • Lakers Under (33.5)
  • Bulls Over (22.5)
  • Sixers Under (39.5)

Kevin Durant is the UARPM100 MVP

I recently updated my UARPM100 numbers to reflect the end of regular season statistics. You can see the final numbers here. After all the games were played, Kevin Durant was the UARPM100 MVP in my version of Wins Above Replacement (WAR). Durantula provided roughly 21.8 wins over what we’d expect from a replacement level player taking over his minutes, while LeBron James came in as a close second providing 21.5 WAR. LeBron was a bit more productive per possession, by UARPM100, than Durant (+7.6 to +7.1), but Durant played more minutes, which ultimately made the difference.

Interestingly, Chris Paul was tops in per possession productivity clocking in at +8.1 points per 100 possessions better than average. CP3 missed a number of games with injury, which knocked him out of MVP consideration. Paul was still able to contribute 16.8 WAR despite only playing 61 games, which is pretty amazing.

The top 10 in WAR via UARPM100 were:

1. Kevin Durant, 21.8 WAR

2. LeBron, 21.5 WAR

3. Kevin Love, 19.4 WAR

4. Stephen Curry, 18.9 WAR

5. Blake Griffin, 18.2 WAR

6. Chris Paul, 16.8 WAR

7. Joakim Noah, 16.1 WAR

8. DeAndre Jordan, 16.0 WAR

9. James Harden, 15.7 WAR

10. Carmelo Anthony, 15.1 WAR

(Way to waste a really great season from Carmelo, Knicks.)

Also notable: Goran Dragic, who recently received the NBA’s Most Improved Player award, finished 20th overall in WAR. In 2012–13, Dragic put up a +1.3 UARPM100, while this season he put up a +3.8, along with the aforementioned 20th place finish in WAR. A pretty big leap, and one of the more difficult things a player can do- go from being the pretty good player he’s been his whole career- to jumping into the top echelon.