Monday 3 August 2015

How to compare NBA players comprehensively

(Originally posted on Sunday, 27 May 2018)

This analysis shows the most comprehensive way of comparing NBA players. I made some previous calculations more detailed (previous values changed a little) AND this time I included also the “scoring efficiency values” of the players (based on their shooting efficiency, but calculated my own way).

My values of statistics can be applied directly to any game as a cool way to verify their correctness – the difference between total values for the opposing teams should be a decent approximation of the actual differences between points scored.

My analysis is based on one CRUCIAL thing. All kinds of players (scorers, passers and rebounders) have to do their job to achieve, as a team, an average result. All of them. So, for example, we CANNOT credit a point guard for 2 points per 1 assist, because a scorer also had to do his job – there would be NO assist if the scorer missed a wide open shot or a dunk. And it works the other way too – not all of the points should be credited to the actual scorers – basketball is a team sport after all. The question is how all the statistics should be compared to each other.


SOURCE OF DATA

All the statistical data I used I found on this site:
http://www.basketball-reference.com/

At this point I would like to thank Mike from the above site who in 2016 answered my plea for more precise NBA draft data by explaining to me how I could gather the required data in a very easy way. Mike explained to me that I can “filter by draft year for searches in the player season finder and can set the search for career stats”, with this example:
http://bkref.com/tiny/ifje3
It opened my eyes to new possibilities – gathering NBA stats with the help of the player finder (or the team finder) is awesome!

Thank You Mike!

My analysis was based on data from the 41 seasons, starting with the season 1976-77 (the first season after the NBA merged with the ABA) up to the season to 2016-17 (I did the main bulk of the analysis in 2017). The main reason why I didn't gather data from earlier seasons was that the times before the NBA-ABA merger are not quite comparable to the times after the merger – there were many VERY good players in the ABA, so the players in the NBA had somewhat easier times before the merger. The second reason was that the average NBA statistics in the early years were clearly worse than in modern times and I didn't want them to influence my calculations.

I needed to gather data from 41 seasons, but it turned out that I can do it with only one search!
http://bkref.com/tiny/RNPY4
The player season finder and the team season finder on this site are simply awesome!


BASIC NUMBERS

The totals for the last 41 seasons for all the teams together are:
FG = 3,496,665
FGA = 7,542,376
2P = 3,110,450
2PA = 6,438,470
3P = 386,215
3PA = 1,103,906
FT = 1,767,847
FTA = 2,345,920
TRB = 3,838,537
AST = 2,076,126
STL = 731,470
BLK = 455,778
TOV = 1,424,801
PTS = 9,147,392

Based on the above totals I calculated also:
FG% = 0.464
2P% = 0.483
3P% = 0.350
FT% = 0.754
Average value of a field goal = (3,110,450 * 2 points + 386,215 * 3 points) / 3,496,665 = 2.110 points


REBOUNDS

I started with the value of a rebound and it turns out that it's a VERY solid foundation on which some other statistical values may be based.

When both teams shoot with higher percentage then the values of a rebound are higher and when both teams shoot with lower percentage then the values a rebound are lower. If both teams would miss all their shots then the value of a rebound would be ZERO!

I decided to start with the most extreme example – one team grabs EVERY rebound. To make the analysis easier I assumed that all the players have 2P% of 0.500 and they attempt only 2P shots. It goes like this:
1. Team-1 – a FG made – 2 points.
2. Team-2 – a FG made – 2 points.
3. Team-1 – a FG missed – 1 rebound (offensive) for Team-1.
4. Team-1 – a FG made – 2 points.
5. Team-2 – a FG missed – 1 rebound (defensive) for Team-1.
6. Team-1 – a FG missed – 1 rebound (offensive) for Team-1.

This is the whole sequence that is repeated a number of times in the whole game – the next 2 shots would be made (one shot by each team) starting with Team-1, exactly as it was at the start of the sequence.

The sums for the sequence are:
Team-1: 4 points and 3 rebounds (2 offensive and 1 defensive).
Team-2: 2 points and 0 rebounds.
Differences: 2 points and 3 rebounds.

The imprecise value of ONE rebound: 2/3

Calculating values for offensive and defensive rebounds gives different values in different examples BUT calculating a value for ANY rebound gives ALWAYS the same value! The value depends only on the assumed 2P%.

To show you that this is true I prepared another example. I assumed that all the players have 2P% of 0.500 and they attempt only 2P shots (similarly to the first example), but Team-2 grabs half of the possible defensive rebounds (and still no offensive rebounds at all). It goes like this:
1. Team-1 – a FG made – 2 points.
2. Team-2 – a FG made – 2 points.
3. Team-1 – a FG missed – 1 rebound (defensive) for Team-2.
4. Team-2 – a FG missed – 1 rebound (defensive) for Team-1.
5. Team-1 – a FG made – 2 points.
6. Team-2 – a FG made – 2 points.
7. Team-1 – a FG missed – 1 rebound (offensive) for Team-1.
8. Team-1 – a FG made – 2 points.
9. Team-2 – a FG missed – 1 rebound (defensive) for Team-1.
10. Team-1 – a FG missed – 1 rebound (defensive) for Team-2.
11. Team-2 – a FG made – 2 points.
12. Team-1 – a FG made – 2 points.
13. Team-2 – a FG missed – 1 rebound (defensive) for Team-1.
14. Team-1 – a FG missed – 1 rebound (offensive) for Team-1.

This is the whole sequence that is repeated a number of times in the whole game – the next 2 shots would be made (one shot by each team) starting with Team-1 AND after the next missed shot by Team-1 the ball would go to the Team-2, exactly as it was at the start of the sequence.

The sums for the sequence are:
Team-1: 8 points and 5 rebounds (2 offensive and 3 defensive).
Team-2: 6 points and 2 rebounds (defensive).
Differences: 2 points and 3 rebounds.

The imprecise value of ONE rebound: 2/3

As you can see the imprecise value of one rebound is the same as before. Some of the rebounds cancel each other out, but what is left explains the point difference perfectly. But the examples assumed that there were no 3-pointers and that the 2P% was 0.500. We have to take the FG% into account together with the average value of a field goal:
2/3 * (0.464/0.500) * (2.110/2) = 0.653

The value of ONE rebound (before fine-tuning) = 0.653


REBOUNDS VS. POINTS

The examples above show one more VERY important thing – the sheer rebounding earns some extra points AND prevents the same number of points for the opposing team! It shows that half of the value of a rebound is offensive and half is defensive – when teams have equal number of rebounds their offensive and defensive values cancel each other out, but all the rebounds still have the same value.

Let's analyse a game were both teams shoot with the average FG% (0.464), attempt 102 average FG (of average value of 2.110 points) and grab all defensive rebounds:
Points scored by every ream: 102 * 0.464 * 2.110 = 99.862
Number of rebounds by every team: 102 * (1 – 0.464) = 54.672
Value of all rebounds: = 54.672 * 0.653 = 35.700
Offensive value of all rebounds: 35.700 / 2 = 17.850

It means that on average 17.850 points (out of 99.862 scored) were earned by sheer rebounding and that they are already credited to players with rebounds (within the value of rebounds of 0.653). In this example the precise % of points scored that should be credited to the players who grabbed rebounds is this:
17.850 / 99.862 = 0.179
It means that in this example only 82.1 % of all the points scored should be credited to the actual scorers! But other statistics (assists and steals) do influence scoring, so the value of a point scored is LESS than 0.821 point. The question is how much less. It will be described toward the end.


ASSISTS

The value of an assist has been the most troubling issue for me, but I finally found a very good reason to calculate it in a particular way. Let's imagine that there is a fast break with two teammates and not a single defender. So, the player with the ball can be selfish and finish with a 2P or he can throw a lob and make the fans happy with the other player dunking in a spectacular way. Obviously the second option is much better, so there should be no difference between assist and 2P in such situations. But we have to remember that only 82.1 % of all the points scored should be credited to the actual scorers.

Obviously some assists are harder and some assists are easier, but on average an assist should be treated equally to a 2P after an assist. But what about a 3P after an assist? Obviously it is much harder to make a 3P than a 2P (especially a dunk), even after a perfect pass. So, for 3Ps I assumed that it is twice as hard (2/3) to make them than it is to have an assist leading to a 3P (1/3).

I ended up with these calculations:
2 * 0.821 * (1/2) = 0.821
3 * 0.821 * (1/3) = 0.821

So either way an assist is on average worth the same!

The value of ONE assist (before fine-tuning) = 0.821


BLOCKS

A block stops a shot completely, so it negates the average value of a field-goal multiplied by FG% of non-blocked shots (a block is counted as a missed shot toward the shooter). In the last 41 years there were:
FG = 3,496,665
FGA = 7,542,376
BLK = 455,778

We can calculate FG% for non-blocked shots:
3,496,665 / (7,542,376 – 455,778) = 0.493

The average value of a field goal is 2.110, so the value of a block is 2.110 * 0.493 = 1.040. Blocks hardly ever occur against 3-point shots, but a similar analysis for 2P-shots only gives the same value:
2P = 3,110,450
2PA = 6,438,470
BLK = 455,778
2P% for non-blocked shots:
3,110,450 / (6,438,470 – 455,778) = 0.520
value of a block = 2 * 0.520 = 1.040

The value of ONE block (before fine-tuning) = 1.040


STEALS

A steal means that there was no FGA at all, so there is clearly a defensive value of a steal, but half of the “credit” should go to the player from the opposing team who committed a turnover. Once again I have to point out that all the players should do their job and their job is also to play defense. Players with many turnovers are surely bad passers and players with many steals are usually very good defenders. It seems fair to split the responsibility 50-50 between them (for turnovers that result in steals).

The defensive value of a steal is this (no FGA at all):
2.110 * 0.464 * 0.5 = 0.490

The examples for rebounds showed that the sheer rebounding earns some extra points, so a steal should be valued similarly (there was no need for a rebound at all). The examples for rebounds showed that every rebound is worth 0.653 and that half of this value is offensive. From the offensive point of view a rebound means basically that a team gained a possession which may end in a FGA and a FG. From the offensive point of view a steal means exactly the same, so the value should be the same, but again it is partly the fault of the players who committed turnovers (responsibility split in half).

The offensive value of a steal connected with the change of possession of the ball:
0.5 * 0.653 / 2 = 0.163

There is also an offensive value of a steal connected with increased FG% – some steals end in a fast-break and some fast-breaks end in easy points (more or less). It means that a steal on average improves the probability of a field goal, but again it is partly the fault of the players who committed turnovers.

I decided to analyse separately steals ending in 2PA and in 3PA because it is MUCH easier to score on an open dunk than on an open 3P, so they should be credited differently for the players who recorded a steals. But how many fast-breaks result in a 2PA and how many result in a 3PA? I assumed that only 15 % of fast-breaks end in a 3PA. It's very natural – why risk missing a 3PA when you can drive to the basket and try to score easy 2 points (as a team)? Moreover this is exactly how many 3PA were compared to the FGA (rounded to full %):
(3PA) 1,103,906 / (FGA) 7,542,376 = 15 % Another problem is this: How many fast-breaks are there after steals? I assume that 80 % of steals end in a kind of fast-break that give some king of advantage and 20 % of steals ends without ANY offensive bonus. Let's analyse 2PA after a steal (85 % of all the steals).

There are no statistics about fast-breaks ending in 2PA, so I have to make some assumptions:
10 % of such cases ends with a wide-open dunk (2P% of 0.950)
10 % of such cases ends with a superb position (2P% of 0.850)
20 % of such cases ends with a very good position (2P% of 0.750)
20 % of such cases ends with a good position (2P% of 0.650)
20 % of such cases ends with a slightly advantageous position (2P% of 0.550)
20 % of such cases ends without any advantage (2P% of 0.483)

We have to remember that every player had to do his job, so the value has to be again split between players who stole the ball and who actually scored the points.

The offensive value of a steal ending in a 2PA:
0.5*(0.1*(0.950-0.483)+0.1*(0.850-0.483)+0.2*(0.750-0.483)+0.2*(0.650-0.483)+0.20*(0.550-0.483)+0.2*(0.483-0.483))*2 = 0.184

Now let's analyse 3PA after a steal (15 % of all the steals).

There are no statistics about fast-breaks ending in 3PA, so I have to make some assumptions:
15 % of such cases ends with a wide-open 3PA by a very good 3P shooter (3P% of 0.550)
15 % of such cases ends with a wide-open 3PA by a good 3P shooter (3P% of 0.500)
25 % of such cases ends with a relatively open 3PA by a good 3P shooter (3P% of 0.450) 25 % of such cases ends with a relatively open 3PA by an average 3P shooter (3P% of 0.400)
20 % of such cases ends with an average 3P taken by an average 3P shooter (3P% of 0.350)

We have to remember that every player had to do his job, so the value has to be again split between players who stole the ball and who actually scored the points. Yes, it is harder to hit an open 3P than to make a dunk or a layup, but this is already reflected in the percentages above.

The offensive value of a steal ending in a 3PA:
0.5*(0.15*(0.550-0.350)+0.15*(0.500-0.350)+0.25*(0.450-0.350)+0.25*(0.400-0.350)+0.20*(0.350-0.350))*3 = 0.135

The overall offensive value of a steal connected with increased FG% = 0.184 * 0.85 + 0.135 * 0.15 = 0.177
The overall offensive value of a steal (change of possession + FG%) = 0.163 + 0.177 = 0.340
The overall value of a steal (defensive + offensive) = 0.490 + 0.340 = 0.830

The value of ONE steal (before fine-tuning) = 0.830


TURNOVERS

A turnover means that there was no FGA at all, but some turnovers transformed into steals and half of credit went to the to the player from the opposing team who recorded a steal. But some turnovers didn't transform into steals, so the player who committed turnover should be fully “credited” for the lack of FGA.

TOV = 1,424,801
STL = 731,470
TOV with steals % = 731,470 / 1,424,801 = 0.513
TOV without steals % = (1,424,801 – 731,470) / 1,424,801 = 0.487
The offensive negative value of a turnover is this:
-2.110 * 0.464 * (0.513 * 0.5 + 0.487 * 1) = -0.728.

There is also defensive negative value of a turnover. First of all the sheer gaining of the possession by the opposing team is negative defensively (I described this issue by the steals and rebounds), but we have to remember that not every turnover results in a steal.

The defensive negative value of a turnover connected with the change of possession of the ball is this:
-0.653 / 2 * (0.513 * 0.5 + 0.487 * 1) = -0.243

As I described by the steals, some steals end in a fast-break and some fast-breaks end in easy points (more or less). It means that a steal on average improves the probability of a field goal, but again it is partly the fault of the players who committed turnovers. But there is no such value when there is a turnover without a steal.

The defensive negative value of a turnover connected with increased FG% for the opposing team is this:
0.513 * -0.177 + 0.487 * 0 = -0.091

The overall defensive negative value of a turnover = -0.243 + -0.091 = -0.334
The overall negative value of a turnover (offensive + defensive) = -0.728 + -0.334 = -1.062

The value of ONE turnover (before fine-tuning) = -1.062


PERSONAL FOULS

I don't value personal fouls. Why? Not every foul ends with a free throw and some of the fouls that end with free throws are GOOD because they were committed either on a weak FT shooter or to prevent easy points. And the offensive value of a FT (for the opposing team) is reflected in points scored (for the opposing team).

The value of ONE personal foul (final) = 0


FREE THROWS MADE

A free throw is a kind of shot that is ALWAYS wide-open (there is no defense at all) and this is why most of the credit should go for the actual scorer. Yes, some of the fouls occur during team-play, but many of them are committed early in the play and are the fault of the defender rather than the result of good team-play. Moreover some of fouls are tactical – toward the end of the game or against a weak free throw shooter. Most importantly, there is no assist leading to a FT and any steal that happens before a FT doesn't improve the FT%. So, the only thing to take into account is the value of rebounding.

The value of ONE free throw made (before fine-tuning) = 0.821


2-POINTERS MADE and 3-POINTERS MADE

Now, this is tricky. There are 2Ps and 3Ps (made) after or without an assist and/or after or without a steal. Looking at the box-score there is no way of telling which 2Ps or 3Ps were scored when. I split the number of assists and steals relatively to the numbers of 2Ps and 3Ps. I made calculations for assists and steals separately, because the end results would either way come up the same – if a 2P was scored after a steal together with an assist then there would be more 2Ps scored without a steal nor an assist.

I ended with these calculations:

FG = 3,496,665
2P = 3,110,450
3P = 386,215
AST = 2,076,126
STL = 731,470

The number of 2Ps after an assist = AST * 2P / FG = 2,076,126 * 3,110,450 / 3,496,665 = 1,846,813

The value of a 2P after an assist is the same as the value of the assist – it is explained by the assists.
2P after an assist = 2 * 0.821 * (1/2) = 0.821

The number of 3Ps after an assist = AST * 3P / FG = 2,076,126 * 386,215 / 3,496,665 = 229,313

The value of a 3P after an assist is twice the value of the assist – it is explained by the assists.
The value of a 3P after an assist = 3 * 0.821 * (2/3) = 1.642

To calculate number of 2Ps and 3P after a steal we have to take into account that the 2P% and 3P% above (given by the steals) were for 2PA and 3PA (attempted), not for 2P and 3P (made).

The number of steals ending in a 2PA = STL * 2PA / FGA = 731,470 * 6,438,470 / 7,542,376 = 624,412

The number of 2Ps (made) after a steal = 624,412 * (0.1*0.950+0.1*0.850+0.2*0.750+0.2*0.650+0.20*0.550+0.2*0.483) = 416,233

The value of a 2P after a steal has to be calculated in steps. First of all, we know that the offensive value of a steal ending in a 2PA is 0.184 (explained by the steals). But that value is for such steals, but not every steal ends in a 2P (made). We have to transform this value in a way that keeps the overall value equal.

The overall value of steals ending in a 2PA = 0.184 * 624,412 = 114,892
The value of a steal ending in a 2PA = 114,892 / 416,233 = 0.276

The value of a 2P after a steal = 2 * 0.821 - 0.276 = 1.366

Please notice that the last calculation uses the value 0.821, so it takes into account also the change of the possession.

The values for a 3P after a steal is calculated in a similar way:

The number of steals ending in a 3PA = STL * 3PA / FGA = 731,470 * 1,103,906 / 7,542,376 = 107,058

The number of 3Ps (made) after a steal = 107,058 * (0.15*0.550+0.15*0.500+0.25*0.450+0.25*0.400+0.20*0.350) = 47,106

The overall value of steals ending in a 3PA = 0.135 * 107,058 = 14,453
The value of a steal ending in a 3PA = 14,453 / 47,106 = 0.307

The value of a 3P after a steal = 3 * 0.821 – 0.307 = 2.156

The remaining 2Ps are 2Ps without an assist nor a steal.

The number of 2Ps without an assist nor a steal = 3,110,450 - 1,846,813 - 416,233 = 847,404

The value of a 2P without an assist nor a steal = 2 * 0.821 = 1.642

The remaining 3Ps are 3Ps without an assist nor a steal.

The number of 3Ps without an assist nor a steal = 386,215 - 229,313 - 47,106 = 109,796

The value of a 3P without an assist nor a steal = 3 * 0.821 = 2.463

Now we can finally calculate the values for 2Ps and 3Ps.

The value of 2P = 0.821 * 1,846,813 / 3,110,450 + 1.366 * 416,233 / 3,110,450 + 1.642 * 847,404 / 3,110,450 = 1.118

The value of 3P = 1.642 * 229,313 / 386,215 + 2.156 * 47,106 / 386,215 + 2.463 * 109,796 / 386,215 = 1.938

The value of ONE 2-Pointer made (before fine-tuning) = 1.118

The value of ONE 3-Pointer made (before fine-tuning) = 1.938


SCORING EFFICIENCY

Please notice that this about SCORING efficiency, not shooting efficiency. It's not the same! Scoring efficiency depends on shooting efficiency, but shooting efficiency on its own is a value taken out of context.

Previously I made a separate analysis for the “scoring value differences” that was totally independent from the previous versions of the present post because I thought that good shooters (with high shooting %) are already rewarded in the box score (they score more points than an average shooter) and bad shooters (with low shooting %) punish themselves by not scoring some points. Well, I must admit that I was wrong. I found an example that shows what it really means to shoot with high scoring efficiency.

To make the example as clear as possible let’s assume that a team attempts only 2Ps and that the league-wide average of 2P% is 0.500.

Player A: 12 shots made on 20 shots attempted (0.600) = 24 points
Player B: 9 shots made on 18 shots attempted (0.500) = 18 points
Player C: 7 shots made on 16 shots attempted (0.438) = 14 points
Player D: 7 shots made on 14 shots attempted (0.500)= 14 points
Player E: 4 shots made on 10 shots attempted (0.400) = 8 points
Bench: 11 shots made on 22 shots attempted (0.500) = 22 points

Team as a whole: 50 shots made on 100 shots attempted (0.500) = 100 points

So, on an average team there was 1 player (A) who was shooting AND scoring so well that it allowed 2 other players to shoot below average (C and E). I have to point it out once again: the player A was shooting better than average %, but the team as a whole was still shooting with average %. You can say that offensively the player A carried the rest of the team on his shoulders, more or less.

The example shows another very important issue – looking just at the raw number of points scored is not fair. When you look at the precise stats of the players C and D you can see that they scored the same number of points, but the scorer C needed 2 shot attempts more to do it, so the scorer D should be considered better, not the same.

The “raw” (without caring about team-play) and imprecise (with the average 2P% of 0.500 instead of the actual one 0.483) formula for the value of the 2P-scoring efficiency would be this:
2PA*(2P/2PA-0.500)*2

Player A: +4
Player B: 0
Player C: -2
Player D: 0
Player E: -2
Bench: 0

Team as a whole: 0

Please, notice that the scoring efficiency depends on how many shots a player attempts. The players C and E were equally bad as far as their scoring efficiency is concerned, even though they were shooting with a different 2P%. This is logical – it’s not really important that a player shoots with a high (or low) shooting efficiency when he attempts only 2 shots per game, right? However, when a high (or low) shooting efficiency is combined with lots of shot attempts then it becomes VERY important.

The crucial question is this: should a player be fully credited for his high (or low) scoring efficiency? Mostly yes, but definitely not fully. If a very good player plays on a very weak team then he is double-teammed more often because when he passes his teamates don't hit so often (and he gets fewer assists as well). By reversing this situation we can see that all the scorers on a team have an easier time when there are more of them. Even just standing in the corner and waiting for a pass should be considered as team-play. I read somewhere a very interesting remark on Kyle Korver – someone stated that Korver improves offense even without taking any shots because he draws his defender away from the paint. Well, it makes sense.

I decided to be consistent with all the calculations and values above because they were based on team-play too, but there is one significant difference. I analyse an average team who shoot with an average 2P%, so the number of rebounds remains the same. It means that the offensive value of rebounds is correctly reflected in the points scored, so the scoring efficiency values should not be lowered in a similar way. The calculations are actually very easy:

The % of the value of 2P-scoring efficiency rewarded to the scorer = 1.118 / 0.821 / 2 = 0.681
The % of the value of 3P-scoring efficiency rewarded to the scorer = 1.938 / 0.821 / 3 = 0.787
The % of the value of FT-scoring efficiency rewarded to the scorer = 0.821 / 0.821 / 1 = 1.000

This values make sense too. FT% is fully dependant on the skills of the FT shooter and 2P% and 3P% are achieved to some extent by team-play, but a 3P shot is more difficult to make than a 2P shot, even with a perfect team-play. On the other hand we should NOT fully “punish” the scorers with low 2P% or low 3P% because they are sometimes forced to take some difficult shots just because the team as a whole is weak (or for any other reason).

Now we can calculate the value of 2P-scoring efficiency and the value of FT-scoring efficiency rewarded to the scorers (other players are not rewarded because all the values are calculated for an average team and the scoring value of the whole team is 0):

The value of 2P-scoring efficiency (before fine-tuning) = 2PA*(2P/2PA-0.483)*2*0.681
The value of FT-scoring efficiency (before fine-tuning) = FTA*(FT/FTA-0.754)*1*1

The value of 3P-scoring efficiency HAS to be calculated in a slightly different way. The 3P% is a much less stable statistic than 2P% and FT%. The average 3P% in the 41 seasons starting with the season 1976-77 was 0.350, but in the seasons 1976-77, 1977-78 and 1978-79 there were no statistics for 3P shots and in each of the next 7 seasons the 3P% was below 0.283, with the worst 3P% of 0.238! More importantly the number of 3P attempts was varying greatly over time – it was as low as 166 per team in 1980-81 and as high as 2214 per team in 2016-17. This is over 13 times more 3P attempts! Even worse, some teams and players relied on 3-pointers and some other ignored them almost completely. Lastly we need to find a way to objectively decide which kind of shot is better under different circumstances. For these very reasons I decided to calculate the value of 3P-scoring efficiency in reference to the average 2P%.

The value of 3P-scoring efficiency (before fine-tuning) = 3PA*((3P/3PA)*3 – 0.483*2)*0.787

The crucial part of this formula ((3P/3PA)*3 – 0.483*2) allows us to calculate the breaking point between 2P% and 3P%.

The universal formula for the breaking point for 3P% is this:

3P% = 2P% * 2 / 3

For the average 2P% of 0.483 the breaking point for 3P% was 0.322. It means that a 3P shooter was on average good for his team if he had made more than 32.2 % of his 3P attempts and he was on average bad for his team if he had made less than 32.2 % of his 3P attempts.

I have to point out that the breaking point for 3P% changes from season to season and from team to team. For the average 2P% in the season 2016-17 of 0.503 the breaking point for 3P% was 0.335. For the average 2P% of the Golden State Warriors in the season 2016-17 of 0.557 the breaking point for 3P% was 0.371. For the average 2P% of the Memphis Grizzlies in the season 2016-17 of 0.473 the breaking point for 3P% was 0.315. Each team should use their own 2P%, but my calculations are for the average 2P% of 0.483.


FINE-TUNING

Now I take the OFFENSIVE values calculated above and calculate their overall value and compare it to the actual number of scored points, BUT with a twist concerning turnovers. The offensive value of a turnover is negative, which means that some points were lost, so I definitely should NOT take the negative offensive value of a turnover. On the other hand the DEFENSIVE value of a turnover is also negative, which means that some points were gained by the opposing team (there was a change of possession without a rebound AND some of the turnovers lead to easy points for the opposing team), so here I have to use the DEFENSIVE value of a turnover, but with a plus sign.

Please notice also that in the calculations during fine-tuning I don't use the scoring efficiency values because by definition they should be 0 (they are calculated in reference to the average shooting %s). However the average shooting percentages are rounded to 3 decimal places and with HUGE numbers of 2PA, 3PA and FTA there would be actually some total values, but they would be errors by definition (because of the rounding). In case of particular players the errors are minimal AND they are proportionally the same.

(2P) 3,110,450 * 1.118 + (3P) 386,215 * 1.938 + (FT) 1,767,847 * 0.821 + (TRB) 3,838,537 * 0.653 / 2 + (AST) 2,076,126 * 0.821 + (STL) 731,470 * 0.340 + (TOV) 1,424,801 * 0.334 = 9,359,735.27

The actual number of scored points:
PTS = 9,147,392

The difference is 212,343.27, so the error was only 2.321 % (0.02321).

To be honest I was glad that there was a small error because it allowed me to find a reason to fine-tune the too-precise values. Luckily it turned out that it is possible to find values that are easy to remember AND do it in a consistent way!

The final values are just rounded DOWN in such a way that there is either 0 or 5 at the second decimal place (easy to remember), except for the scoring efficiency values.

In case of scoring efficiency values I kept the precise reference points (the average shooting percentages rounded to 3 decimal places) and I rounded the percentages of the scoring efficiency values rewarded to the scorers UP. Why up? Well, I felt that rewarding scorers with only 65 % of the value of their 2P-scoring efficiency and only 75 % of the value of their 3P-scoring efficiency would be a bit too low, considering especially that I would reward scorers with 100 % of the value of their FT-scoring efficiency anyway.


My FINAL (fine-tuned) values are:

2P = 1.1
3P = 1.9
FT = 0.8
TRB = 0.65
AST = 0.8
STL = 0.8
BLK = 1
TOV = -1.05
SCE_2P = 2PA*(2P/2PA-0.483)*2*0.7
SCE_3P = 3PA*((3P/3PA)*3 – 0.483*2)*0.8
SCE_FT = FTA*(FT/FTA-0.754)*1


Checking the fine-tuning:
(2P) 3,110,450 * 1.1 + (3P) 386,215 * 1.9 + (FT) 1,767,847 * 0.8 + (TRB) 3,838,537 * 0.65 / 2 + (AST) 2,076,126 * 0.8 + (STL) 731,470 * 0.330 + (TOV) 1,424,801 * 0.33 = 9,189,575.86

The actual number of scored points:
PTS = 9,147,392.00

The difference is 42,183.86, so the error is ONLY 0.461% (0.00461).

In an average (theoretical) game the defensive values are the same for each team and they cancel each other out. In a normal game all the values together should explained (more or less) the DIFFERENCE between points scored by opposing teams, BUT in games that are played much differently from an average game the results may become twisted and/or magnified.

The biggest distortion is connected with the scoring efficiency values, especially when one team is scoring with high efficiency and the other team is scoring with average or below average efficiency. The team scoring with high efficiency get more value for their points (more value for their 2P, 3P and FT) AND they get additional value for their high efficiency (more value for their SCE_2P, SCE_3P and SCE_FT). These values more then double each other. A reversed situation is also distorted (one team is scoring with low efficiency and the other team is scoring with average or above average efficiency).

Please remember that any distortion connected with scoring efficiency values doesn't mean that the values are calculated wrongly. They are calculated to compare particular players on an average team. When the whole team is shooting with very high efficiency ALL the values become distorted, not only the scoring efficiency values.


VERIFICATION

To verify my values I used the following NBA games:
1) my favourite NBA game ever – the Memorial Day Miracle,
2) game 7 of the 2013 NBA finals,
3) game 5 of the 2016 NBA finals,
4) game 6 of the 2016 NBA finals,
5) game 7 of the 2016 NBA finals,
6) game 7 of the 2017 NBA Eastern Conference Semifinals,
7) game 5 of the 2017 NBA finals.

The box-scores for this games can be found here:
http://www.basketball-reference.com/boxscores/199905310SAS.html
http://www.basketball-reference.com/boxscores/201306200MIA.html
http://www.basketball-reference.com/boxscores/201606130GSW.html
http://www.basketball-reference.com/boxscores/201606160CLE.html
http://www.basketball-reference.com/boxscores/201606190GSW.html
https://www.basketball-reference.com/boxscores/201705150BOS.html
https://www.basketball-reference.com/boxscores/201706120GSW.html

The numbers below mostly speak for themselves, but please remember that some games are played MUCH differently than the average game and that the overall values contain also defensive values as well as scoring efficiency values.

Game 1:
Teams: Portland Trail Blazers at San Antonio Spurs
Actual result: 85 – 86 [-1]
Overall values: 82.4 – 91.6 [-9.2]

Game 2:
Teams: San Antonio Spurs at Miami Heat
Actual result: 88 – 95 [-7]
Overall values: 86.7 – 93.6 [-6.9]

Game 3:
Teams: Cleveland Cavaliers at Golden State Warriors
Actual result: 112 – 97 [15]
Overall values: 117.1 – 94.4 [22.7]

Game 4:
Teams: Golden State Warriors at Cleveland Cavaliers
Actual result: 101 – 115 [-14]
Overall values: 94.7 – 138.8 [-44.1]
This is the only game where the approximation is weak.

Game 5:
Teams: Cleveland Cavaliers at Golden State Warriors
Actual result: 93 – 89 [4]
Overall values: 99.2 – 98.2 [1.0]

Game 6:
Teams: Washington Wizards at Boston Celtics
Actual result: 105 – 115 [-10]
Overall values: 106.0 – 129.2 [-23.2]

Game 7:
Teams: Cleveland Cavaliers at Golden State Warriors
Actual result: 120 – 129 [-9]
Overall values: 123.8 – 139.6 [-15.8]

No comments:

Post a Comment