Last month, I wrote my first blog post predicting this season’s All-NBA teams using an ordinal response regression model. I trained my model on NBA data from the 1980-2018 NBA seasons using data from basketball-reference.com. Using only player stats, I knew my model would miss two key areas that NBA voters would notice: health and team success. Players like LeBron James and Anthony Davis put up great numbers while on the court, but both missed substantial time. Anthony Davis trade rumors also caused turmoil among the rosters of two teams hurting the win total of both the Lakers and Pelicans.
So how did the model perform? The short answer is Bradley Beal and Anthony Davis were included while Steph Curry and Nikola Jokic were left out of the top 15 players in the NBA. Let’s take a little closer look at each All-NBA team for the hits and misses.
First Team
|
|||
Position
|
Actual
|
Predicted
|
Off
|
Guard
|
Steph Curry
|
Damian Lillard
|
1
|
Guard
|
James Harden
|
James Harden
|
0
|
Forward
|
Giannis Antetokounmpo
|
Giannis Antetokounmpo
|
0
|
Forward
|
Paul George
|
LeBron James
|
2
|
Center
|
Nikola Jokic
|
Anthony Davis
|
3
|
For All-NBA First Team, the model nailed the Harden and Giannis selections. These two players were unanimous selections. It ranked Damian Lillard, the third highest voted guard, as a First Team player. Including LeBron and AD while completely leaving off Steph Curry and Nikola Jokic from any team were the biggest failures of the model. My model gave Nikola Jokic and 85% chance of missing an All-NBA selection. Jokic’s elite passing was likely overlooked in the model as it was trained on the different era centers of the 80s, 90s and early 2000s. Steph, meanwhile, ranked as my seventh guard and narrowly missed an inclusion on the third team.
Second Team
|
|||
Position
|
Actual
|
Predicted
|
Off
|
Guard
|
Damian Lillard
|
Russell Westbrook
|
1
|
Guard
|
Kyrie Irving
|
Bradley Beal
|
2
|
Forward
|
Kawhi Leonard
|
Paul George
|
1
|
Forward
|
Kevin Durant
|
Kevin Durant
|
0
|
Center
|
Joel Embiid
|
Joel Embiid
|
0
|
The Second Team predictions got two players right on again – KD and Joel Embiid. Bradley Beal was the highest vote getter to be left off the All-NBA selections. The model was one team off on each of the Thunder teammates. Westbrook was predicted too high while George too low.
Third Team
|
|||
Position
|
Actual
|
Predicted
|
Off
|
Guard
|
Russell Westbrook
|
Kyrie Irving
|
1
|
Guard
|
Kemba Walker
|
Kemba Walker
|
0
|
Forward
|
LeBron James
|
Kawhi Lenoard
|
1
|
Forward
|
Blake Griffin
|
Blake Griffin
|
0
|
Center
|
Rudy Gobert
|
Rudy Gobert
|
0
|
The Third Team predictions were the best. Kemba Walker, Blake Griffin, and Rudy Gobert were all predicted on their correct teams. Second Team selections, Kyrie Irving and Kawhi Leonard, were predicted one team lower than they were actually voted.
With the benefit of hindsight, I can see that likely too much data went into the predictions. The skills of Steph Curry and Nikola Jokic were unordinary in the 80s and 90s. Using the performance of players from those years as the measuring stick completely misses the value that guys like Steph and Jokic provide to their teams in 2019. A model that predicts voting points rather than the probability that a player makes a certain All-NBA team would also likely improve the predictive capability of the model. Including a team’s win total will also likely help remove the “good stats, bad team” guys that are inflated in my model. Overall, I think the model did alright but I hope to be able to improve the predictions for next year.