Before we enter the Sixers' back-to-back-to-back (should be fun!), here is a brief statistical interlude. In the NFL, organizations like footballoutsiders.com have revolutionized statistics by treating different game situations differently. For example, an 11-yard completion on 3rd-and-9 in the red zone with 2 minutes left in a one-score game is much more difficult (and valuable) than a 15-yard completion on 1st-and-20 in the 1st quarter. That has gotten me to thinking: what if we were to try that in the NBA? Not all points in an NBA game are equal. A basket when your team is down 2 with under a minute left is "worth" much more than a basket in garbage time. So to turn this idea into a workable system, we need to develop some weights based on game situations (the hard part) and then determine weighted statistics (it turns out that these follow naturally).
Here is the table of weightings based on game situations that I came up with. Higher weightings reflect more important game situations, and vice versa. There is a premium placed on close games in the 4th quarter, while points scored during "garbage time" are devalued. A weight of 1.5 means that a 2-point basket is worth 3 points; a weight of 0.5 means that a 2-point basket is worth 1 point.
| Weight |
Game
Situation |
| 1.5 |
+/-
0-3, < 24 s (4Q) |
| 1.4 |
+/-
0-3, < 1 min (4Q) |
| 1.3 |
+/-
0-3, < 2 min (4Q) |
| 1.2 |
+/-
0-5, < 6 min (4Q) |
| 1.1 |
+/-
0-5 (1Q-3Q) or +/- 6-10 (4Q) |
| 1.0 |
+/-
6-10 (1Q-3Q) |
| 0.9 |
+/-
11-15 (1Q-mid 4th) |
| 0.8 |
+/-
16-20 (1Q-3Q), +/- 11-15 (< 6 min 4Q) |
| 0.7 |
+/-
21-29 (1Q-3Q), +/- 16-20 (4Q) |
| 0.6 |
+/-
30+ (1Q-3Q), +/- 21-29 (4Q) |
| 0.5 |
+/-
30+ (4Q) |
In addition to the table above, there are two "bonus" situations, where a weighting is promoted 10% to one level higher on the table than the game situation would otherwise dictate: (1) when points stop a scoring run by the other team [defined as 6 points or more] and (2) when there are points scored at the end of the 1st-3rd quarters [points at the end of the 4th quarter are already given a premium in the table].
Now let's talk about how the weightings are used, using the Sixers' last game vs. the Raptors as an example. Most of the first half was played within a 5-point range, so points scored in the first half were generally weighted at 1.1. The Sixers led briefly by 7-10 points toward the end of the first half, so points scored during that time were weighted at 1.0. The Raptors went on their only scoring run of the game (!) bridging the two halves, so Jrue's basket at 41-38 was weighted at 1.2. And much of the 4th quarter was played during garbage time, so those points were weighted as low as 0.6 and 0.5. For each player, we can multiply his points scored by the weighting of each of the points, to obtain a "weighted points raw" (WPR). In this game, the Sixers' total WPR was 86.8, indicating that there were fewer "important" points (weightings 1.1 or higher) than unimportant (0.9 or lower). But then we scale the team WPR total to the team's actual total (97) to obtain a "weighted points scaled" (WPS) that will show each players weighted contribution to the 97 points.
I've taken the weighted statistics further by counting misses as well and weighting them by game situations according to the table above. In so doing, I can calculate a weighted true shooting percentage (WTSP). "Raw" true shooting percentage (TSP) is calculated essentially as (points) divided by ([scoring possessions]*2). A "scoring possession" is defined as a field goal attempt (2 or 3 points) or a set of (2 or 3) free throws, and it is
not the same as a team possession. Multiple players can have a scoring possession in the same team possession, if there are offensive rebounds.
[Aside on TSP that you can skip if you're not interested: The actual TSP definition contains a factor of 0.44 multiplied by free throws attempted in the denominator, an approximation meant to account for "and-one" situations and technical foul shots. I essentially use a factor of 0.5 and count all "and-one" free throws in the same possession as the field goal attempted (I can do this because I am tabulating the results from the play-by-play; TSP is calculated from the boxscore). The only situations that are not well accounted for are technical free throws and "and-one" free throws when someone else scored the basket (these are rare situations that did not occur in the Raptors game).]
Weighted TSP (WTSP) for any player is then calculated as his weighted points (raw, or WPR) divided by his weighted possession. If the percentage is higher than his "raw" TSP, then that means he shot better in the relatively important situations in the game. Let's look at the Sixers' weighted statistics from this game now:
|
PTS |
WPR |
WPS |
TSP |
WTSP |
| JH |
14 |
13.9 |
15.5 |
70.0 |
70.9 |
| JM |
7 |
6.0 |
6.7 |
29.2 |
26.1 |
| AI |
14 |
14.7 |
16.4 |
46.7 |
47.1 |
| EB |
10 |
10.1 |
11.3 |
62.5 |
60.8 |
| SH |
7 |
7.7 |
8.6 |
58.3 |
57.5 |
| TY |
12 |
9.7 |
10.9 |
60.0 |
56.4 |
| LW |
13 |
10.0 |
11.2 |
46.4 |
41.7 |
| ET |
9 |
7.6 |
8.5 |
50.0 |
49.4 |
| NV |
9 |
6.1 |
6.8 |
56.3 |
56.5 |
| AN |
2 |
1 |
1.1 |
50.0 |
45.5 |
| TOT |
97 |
86.8 |
97 |
50.5 |
49.5 |
Since the Raptors game turned out to be a blowout, the weightings mainly serve to devalue the points scored when the game got out of hand (and, in the scaled totals, bump up the value of the points scored when the game was relatively close). Iguodala's 14 points were worth slightly more than Jrue's 14 points, because all of Iguodala's points were scored when the game was within 10 points. Most of Jrue's 3rd-quarter points came when the margin was already 11-15 points. WTSP totals show, for example, that Jrue shot slightly better on his important scoring possessions, while Meeks shot worse (recall that his made 3-pointer was in garbage time).
So for those who have made it this far, I'm most interested in whether you think the weighting system that I've developed is fair. Do the weightings make sense to you, and do you agree with them? Would you add any other game situations to the table?
Thanks, Statman. This is great stuff.
Can you just clarify how WPS is calculated? You add up the total WPR, then translate each point into actual value to get to 97? So 1 point of WPR is worth 1.1175 points in WPS (97/86.8)?
Yes, that's correct (scaling = [actual team points]/[total weighted points raw]). It's just a scaling from weighted points to actual points, so you can see how the actual points would have been divided up if all the points were weighted.
Cool. This will be really interesting to see for a tight game, especially down the stretch.
Appreciate you taking the time to do these calcalations for us Thanks.
Are you planning to track these stats for every game? It must take a lot of time for even one, but it would be great to see the pooled data in order to get a better idea of who the "clutch" players are.
Thanks this is pretty exciting stuff.
No, it won't be every game. I wrote a program to compile the stats, but I still need to enter the weights for each game situation (plus the play results) manually. A skilled programmer could parse the text from the play-by-play and automate the whole process, but it's beyond my abilities. But I'll definitely compile the stats for "important" Sixer games this season (hopefully there will be many of them).
Elton Brand's traditional start-of-game free elbow jumper should be weighted at 0.4 since it lacks resistance.
Evan Turner's blind, backin' in, twirling dipsy-doodled forays should be weighted at 0.3 because he can't see his goal, his teammates or the help defender.
Off-glass from anywhere above foul line deserves 0.2 weight since the made field goal was a matter of luck.
DB, I like the creativity! Unfortunately, one cannot surmise these descriptive situation modifiers by looking at the staid play-by-play ...
Very cool. My only comment is that is seems to me that points in the last minute are more valuable when the game is tied or you are behind than when you are ahead.
Great stuff as always Statman.
No important game situations come to mind except maybe awarding "clutch" FTs even more since they are out of the flow of the game and the pressure is greater IMO, whereas "clutch" field goals are more within the flow of the game and the pressure is bigger.
As for the weightings, this is a good simple way to do them. However i can propose a significantly more complicated one that just came to my mind. This "sliding weights" suggestion smooths out the weights quite a bit i think.
Basically the idea is to have two weights (lets call them w1 and w2). The actual weight W is calculated as W = w1*w2.
w1 - is a weight derived from the point of time in the game. Lets say w1 = 1 is at the 24min mark. Everything over it will be over 1 according to the percentage of time over 24 up to a preifined maximum and vice versa for minutes before the half (down to a predefined minimum).
w2 - is derived from the "tightness" of the game. w2 = 1 when the game is at the average point differential over an entire game (not sure what that actually is, but it can probably be found). Similar to w1, you can go over and under 1 up to predefined minimums or maximums depending on the actual in-game point differential.
The maximum (and minimum) values of w1 and w2 can be set so that w1*w2 will be 1.5 at the maximum an 0.5 at the minimum (as you already have it).
I know this is a complicated system that will make everything a lot more difficult to calculate, but i wrote it because it might give you a few more ideas and a different perspective. Hopefully you can understand the general idea.
Xsago: good thoughts. As noted above, though, I currently enter the weights manually based on the game situation. In your more complicated scheme (which is probably more accurate), I'd have to stop to think about two different weights for each play and calculate the product, making the whole tabulation process more time-consuming. But if someone were to automate the parsing of the play-by-play to derive the game situations, then your scheme would make sense.
Yup, without automated parsing of play by play data this is too much work. I wasn't sure if you do it by manually or not.
sounds like you're trying to make the video game NBA JAM "clutch" player rating into account, is that right?
http://espn.go.com/blog/truehoop
Pretty interesting on sixers use of young players...
Really cool breakdown, Statman.
It's an interesting idea. The problem is that all points matter. You can say that when a team is down by 10, they don't mean as much as when the game is tied. But in reality, they are worth the same. As long as the game is competitive and a team hasn't given up yet, all points should be weighted equally.
The key to making something like this work would be to find an exact measurement of the weight for each game situation. If there is someway to do research and find that out. I know ESPN uses something where they calculate the percentage of winning at each point in the game. Maybe if the made basket changes the percentage of winning by a certain amount, then it can be weighted a certain amount. And you can find each weight that way.
Otherwise, you're just using arbitrary numbers separated by .1
It's still a great idea and great job on the amount of work you've already put in. You should contact Hollinger with this information and maybe you can get an internship with him or someone like him.
Great job as usual statman
FYI: the sixers line has now moved to -7.5
Really. Was anyone announced as out for Indy?
nobody has been announced out yet for indy, im surprised too
I know Granger, Hill and Hibbert are day-to-day. Maybe some of them won't play who knows.
Or just everyone guessing one or more of them will be missing. liked it at -4.5, wouldn't touch it at -7.5.
You guys think attendance holds at 14,5200 in game two, rises or drops?
Drops? Today's a Monday, last game was a weekend. Indiana's a good team (not as good as their record, but good), but they're not a very hyped team.
Are you saying it drops, or asking why I would suggest it would drop? The question mark is very confusing.
It was a sort of "drops (I guess)."
I think it drops, until another week or so when the record is more on the positive side and you get a few diehards back along with most of the bandwagoners.
This would further complicate things, but is there anything you could do to account for the Shot Clock? I have often thought that a tough shot made with less than 3 secs on the shot clock should be rewarded more than one made with more than 3 secs. Also, a tough shot missed early in the shot clock is a bad play, but one missed with the shot clock running low may not be the result of a bad decision by the player who shot the ball. I think fans get this intuitively, but is this something that is accounted for in any of these advanced stats?
You could do this mathematically if you could set up the automation. Just calculate the amount of time since the previous shot. You'd also have to account for non-shooting fouls and kicked balls, though. That complicates it, but doesn't make it impossible.
Kind of tough to not be wary of any statistical study that involves constants arrived at arbitrarily.
If you are going to take the time to go through a box score, wouldn't it make more sense to look at how each individual play effected a team's win probability, then adding all of that individual's plays up? That's what they do in the football example you referenced.
this would be pretty involved. Do you know of somewhere where you can find some kind of win probability chart for hoops?
At first I was wondering where you accounted for 4 pts
...4pts
at first i was wondering where u accounted for 4pts,-30s,4q but i guess that falls under the 4th group. Might be more clear in a mutually exclusive format (0-3pts,2-6m,4q or 4-5pts -6m)
One of the things I really like about this idea is not simply that you can reward makes in crunch time but also account for important misses. Do you have a weighted shot attempts number used for WTSP?