Good Shots Index

November 4, 2016

Good Shots Index

Good Shots Index is my first approach to describe efficiency of NBA players. I get that its name is a bit lame, but its acronim is GSI which sounds way more geeky, which is good.Good shot is a shot that reasonably thinking NBA player would like to take in any play in any moment. He shoots it frequently and makes them on above league average efficiency.

(Above quantile range for the shot of this type, to be exact. These are serious statistics with serious solutions!)

How exactly do you classify the ‘goodness’?

First of all, I calculate shooting percentage for every player, grouping them by shot type (e.g. jump shot, dunk) and shot zone (e.g. paint, left side long range, restricted area, right center three ). Once I got this, I launch the algorithm:

  • If a shot is more frequent than median of all shots of a player and percentage is at least at the level of league’s quantile range then it is good. It is actually very good. ;)
  • If shot is neigher frequent nor is efficient, it is a bad shot.
  • If it is frequent but not efficient then it is really bad… Kobe.
  • If It is not frequent but efficient then things get tricky but boring to describe - there are special cutoffs. I managed to find quite balanced solution with which I was happy. If you are really interested, feel free to send me a question.

Once I got the ‘good flag’ sorted, I calculated the frequency of good shots for every player and then add some standarization to take number of games, attempts and position of a player into account. I do the simplest normalization (x-min/max-min) as a finishing touch.

I got 2 statistics called GSI_POS and GSI_OVR which describe respectively GSI grouped by positions and GSI overall.

What does the value of GSI mean.

The way it normalized it, GSI has a value of 1 for the best player in the group and value of 0 for the worst one. GSI is perfect to display the distances between players but its direct value does not say much at this moment. Of course there is also a simple percentage of good shots, but it needs clever player grouping to draw conclusions.

Something interesting?

Best result’s holder is Nikola Vucevic. Big Montenegrin was one of the shiniest sparkles of joy in the rather disappointing Orlando Magic season. Big men had easier life in general, because if you have basket within a reach, you are going to have dozens of good shots. Overall ranking is packed with Deandre Jordans of this league, so you got to give a credit to all the backcourt players that made it to top 15.

The gravity of JJ Redick was deadly and got him No.3 overall. Not far behind are CJ McCollum - last season’s the most improved player - and former Thunder player Kevin Durant. No.11 is JR Smith, who earned himself his shirtless parade with spectacular season on the offensive end.

Rookies? Well, there are only two in top 50 - rookie of the year Karl-Anthony Towns and Serbian phenomenom Nikola Jokic.

How about the wrong end of rankings? As you might expect, Kobe Bryant is dead last, and yes, I included his final game. There is also the name of Demarcus Cousins amongst worst, but he has to carry whole city of Sacramento on his broad shoulders. I might consider replacing him with Vivek Ranadive on that particular list.

We can see here the likes of Josh Smith and Randy Foye trying to understand the simplicity of basketball or Emmanuel Mudiay who was really digging deep past season. Oh, and who is that? Is.. is that… Kev… Kevin Love…? He is now an NBA champion, so it does not matter.

Oh, in case you are still wondering, Steph Curry attempted almost 1600 shots and 60% of them were good. GSI has him 4th in guards behind Redick,McCollum and CP3.