You Are Here > Basketball-Reference.com > BBR Blog > NBA and College Basketball Analysis

SITE NEWS: We are moving all of our site and company news into a single blog for Sports-Reference.com. We'll tag all Basketball-Reference content, so you can quickly and easily find the content you want.

Also, our existing Basketball-Reference blog rss feed will be redirected to the new site's feed.

Basketball-Reference.com // Sports Reference

For more from Neil, check out his new work at BasketballProspectus.com.

Statistical Plus/Minus

Statistical Plus/Minus is an estimate of the player's contribution to the team's point differential per 100 possessions, using his boxscore stats as inputs.
Formula Last updated: 6/11/2011

Adjust all per-36 minute rates to a pace factor of 91.6251806668734 before plugging into formula.

Offense

Call:
lm(formula = oapm ~ pts36 + tsa36 + tsa36sq + 3pa36 + ast36 +
    orb36 + tov36 + mpg)

Residuals:
    Min      1Q  Median      3Q     Max
-5.0117 -1.1945  0.0144  1.1642  7.1628 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) -6.873115   1.209980  -5.680 2.55e-08 ***
pts36        1.134918   0.106126  10.694  < 2e-16 ***
tsa36       -1.053041   0.192856  -5.460 8.27e-08 ***
tsa36sq      0.009919   0.005783   1.715  0.08708 .
3pa36        0.287426   0.066216   4.341 1.79e-05 ***
ast36        0.790446   0.080954   9.764  < 2e-16 ***
orb36        0.626947   0.144910   4.326 1.91e-05 ***
tov36       -1.519798   0.252819  -6.011 4.08e-09 ***
mpg          0.047345   0.016239   2.915  0.00375 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 1.873 on 409 degrees of freedom
Multiple R-squared: 0.6476,     Adjusted R-squared: 0.6407
F-statistic: 93.95 on 8 and 409 DF,  p-value: < 2.2e-16

Defense

Call:
lm(formula = dapm ~ tsa36 + orb36 + drb36 + stl36 + blk36 + pf36 +
    mpg)

Residuals:
     Min       1Q   Median       3Q      Max
-6.55889 -1.19094 -0.04867  1.22791  7.68363 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -5.57999    0.94753  -5.889 8.10e-09 ***
tsa36       -0.17041    0.03976  -4.286 2.27e-05 ***
orb36       -0.36938    0.18803  -1.964  0.05015 .
drb36        0.55435    0.11836   4.684 3.84e-06 ***
stl36        2.23664    0.29189   7.663 1.33e-13 ***
blk36        0.68844    0.20863   3.300  0.00105 **
pf36         0.40582    0.16024   2.533  0.01169 *
mpg          0.06387    0.02059   3.102  0.00205 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 2.13 on 410 degrees of freedom
Multiple R-squared: 0.2984,     Adjusted R-squared: 0.2864
F-statistic: 24.91 on 7 and 410 DF,  p-value: < 2.2e-16

Regression was run on all players with 1250 minutes from 2005-06 to 2008-09. You can read more about statistical +/- here.


A variant using Dean Oliver's stats from Basketball on Paper can be calculated by constructing a lineup featuring the player and 4 average teammates. Each teammate will have a defensive rating equal to the league average; a Poss% equal to 100 minus the player's Poss%, divided by 4; and an offensive rating equal to the league's rating plus (20 - Teammate%Poss) * Tradeoff. "Tradeoff" is determined for a given league by: LgRtg * (1.296 / 107.5). (See this post for an explanation.) To compute raw offensive/defensive SPM, subtract the league's offensive rating from the player's "lineup offensive rating" and subtract his "lineup defensive rating" from the league's offensive rating. Force these to fit team offensive/defensive performance by calculating the team adjustment necessary to make 5 * the minute-weighted average of player ratings equal the team's actual ratings.


Another variant using only minutes per game, the team's defensive rating, and Dean Oliver's individual offensive rating, possession %, & defensive rating (the latter 3 metrics being measured relative to average):

(Formula updated 07-27-2011)

Offensive SPM

Call:
lm(formula = oapm ~ pctpos + drtg + pctpos*mpg + pctpos*ortg)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.3544 -1.1935 -0.0937  1.2127  7.7508 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.2569641  0.1447163   8.686  < 2e-16 ***
pctpos      -1.0157628  0.0872534 -11.642  < 2e-16 ***
drtg        -0.1395714  0.0287818  -4.849 1.76e-06 ***
pctpos*mpg   0.0035557  0.0008362   4.252 2.62e-05 ***
pctpos*ortg  0.0112577  0.0008497  13.248  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 1.962 on 413 degrees of freedom
Multiple R-squared: 0.6094,     Adjusted R-squared: 0.6057 
F-statistic: 161.1 on 4 and 413 DF,  p-value: < 2.2e-16

Defensive SPM

Call:
lm(formula = dapm ~ 0 + ortg + pctpos + drtg + tmdef + pctpos*mpg)

Residuals:
   Min     1Q Median     3Q    Max 
-6.843 -1.265 -0.010  1.376  7.988 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
ortg      -0.0447284  0.0163167  -2.741 0.006386 ** 
pctpos    -0.1892379  0.0453301  -4.175 3.64e-05 ***
drtg       0.4941729  0.0428933  11.521  < 2e-16 ***
tmdef     -0.1730666  0.0602370  -2.873 0.004274 ** 
pctpos*mpg 0.0028354  0.0008074   3.512 0.000494 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 2.036 on 413 degrees of freedom
Multiple R-squared: 0.3558,     Adjusted R-squared: 0.348 
F-statistic: 45.62 on 5 and 413 DF,  p-value: < 2.2e-16

"Old SPM"
An older version of the formula, created on 11/22/2010.

Adjust all per-36 minute rates to a pace factor of 91.6251806668734 before plugging into formula.

Offense

Call:
lm(formula = oapm ~ pts36 + tsa36 + tsa36sq + 3pa36 + ast36 +
orb36 + tov36 + stl36 + blk36 + mpg)

Residuals:
Min 1Q Median 3Q Max
-5.23379 -1.20433 0.05485 1.13443 7.02662

Coefficients:
Estimate Std. Error t value Pr(&gt;|t|)
(Intercept) -7.27339 1.25692 -5.787 1.43e-08 ***
pts36 1.17389 0.10589 11.086 &lt; 2e-16 ***
tsa36 -1.10678 0.19265 -5.745 1.80e-08 ***
tsa36sq 0.01010 0.00578 1.747 0.08145 .
3pa36 0.27568 0.06561 4.202 3.26e-05 ***
ast36 0.70050 0.08452 8.289 1.68e-15 ***
orb36 0.72753 0.15149 4.802 2.21e-06 ***
tov36 -1.45687 0.25292 -5.760 1.66e-08 ***
stl36 0.64889 0.27146 2.390 0.01729 *
blk36 -0.34008 0.17834 -1.907 0.05724 .
mpg 0.05023 0.01622 3.097 0.00209 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.853 on 407 degrees of freedom
Multiple R-squared: 0.6569, Adjusted R-squared: 0.6485
F-statistic: 77.93 on 10 and 407 DF, p-value: &lt; 2.2e-16

Defense

Call:
lm(formula = dapm ~ tsa36 + orb36 + drb36 + stl36 + blk36 + pf36 +
mpg)

Residuals:
Min 1Q Median 3Q Max
-6.55889 -1.19094 -0.04867 1.22791 7.68363

Coefficients:
Estimate Std. Error t value Pr(&gt;|t|)
(Intercept) -5.57999 0.94753 -5.889 8.10e-09 ***
tsa36 -0.17041 0.03976 -4.286 2.27e-05 ***
orb36 -0.36938 0.18803 -1.964 0.05015 .
drb36 0.55435 0.11836 4.684 3.84e-06 ***
stl36 2.23664 0.29189 7.663 1.33e-13 ***
blk36 0.68844 0.20863 3.300 0.00105 **
pf36 0.40582 0.16024 2.533 0.01169 *
mpg 0.06387 0.02059 3.102 0.00205 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.13 on 410 degrees of freedom
Multiple R-squared: 0.2984, Adjusted R-squared: 0.2864
F-statistic: 24.91 on 7 and 410 DF, p-value: &lt; 2.2e-16