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(>|t|) (Intercept) -7.27339 1.25692 -5.787 1.43e-08 *** pts36 1.17389 0.10589 11.086 < 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: < 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