# RAPM

Regularized Adjusted Plus/Minus (RAPM) is undoubtedly the most influential one-number metric in basketball analytics today, boosted by its unbiased nature (relatively speaking) which is impartial to playstyle and craftily captures both offense and defense on a fair playing field. Despite it strengths, however, RAPM has lots of intervening weaknesses which affect the metric’s ability to be interpreted. These include:

• The inability to assign credit based on performance.
• The “multicollinearity” problem from consistent lineup shuffling.
• The sampling issues caused by the penalization term.

For those unfamiliar, RAPM uses a “ridge” regression primarily because it is designed to introduce a slight bias in the model to offset the variability that would otherwise decrease the statistical significance of the coefficient estimates. To do this, most modern models use a penalization term (lambda) which tends to draw the coefficients closer to zero (or a prior, in the case of some hybrids) which is obtained via cross-validation, a process in which a data set is continually split into training and testing groups to find an ideal value.

Seems good enough, right? It’s certainly more “objective” than plotting the coefficients by lambda and picking a visually-appealing spot somewhere on the graph. But alas, there is one particular issue to address which hinders RAPM’s ability to be easily interpreted from season-to-season: a lambda value by cross-validation is chosen because it appeases the fit of the model. (And we know the caveats of what happens when solely prioritizing model fit.) So what happens when the model isn’t necessarily right?

The results can either “expand” or “compress” to an undesirable degree! Specifically, we’re dealing with the imperfections in how the metric deviates from its mean, meaning a lambda too high can excessively compress the coefficients and a lambda too low can excessively expand the results! So how do we solve this problem? At least today, by scaling the results based on external criteria. (This is not an original idea; Ben Taylor of Back Picks devised a variant of RAPM in which the coefficients were normalized to the same mean and standard deviation and Twitter user @SamphaStan applied the principle to multiple versions of RAPM.)

To summarize of the calculation process:

• Calculate the (weighted) means for both offense and defense; set new means to zero.
• Calculate the (weighted) standard deviations for both offense and defense; standardize across seasons.
• Re-calculate RAPM so that the (weighted) standard deviations are standardized across seasons; do for both offense and defense.

Listed below are the top-250 seasons on record from 1997 to 2019 among players with more than 2,500 possessions during the regular season (more or less 1,250 minutes played).

PlayerYearTeamGPossORAPMDRAPMRAPM
Kevin Garnett2004MIN826,1505.404.249.64
Kevin Garnett2009BOS573,4162.856.529.37
Draymond Green2016GSW815,9744.105.159.24
LeBron James2011MIA795,9166.093.079.16
LeBron James2016CLE765,3445.743.258.99
Giannis Antetokounmpo2019MIL725,1744.184.808.98
LeBron James2010CLE765,7286.812.048.86
LeBron James2012MIA624,5335.942.778.71
Tim Duncan2003SAS816,0583.744.818.55
Stephen Curry2017GSW795,6906.771.648.40
Kevin Garnett2008BOS714,4682.635.748.37
LeBron James2009CLE815,7695.842.508.34
LeBron James2015CLE694,8896.431.908.33
Tim Duncan2005SAS664,1342.865.107.96
Kevin Garnett2005MIN825,9464.383.347.73
Shaquille O’Neal2001LAL745,6556.820.737.55
Kevin Garnett2003MIN826,4804.193.307.49
Kevin Durant2019GSW785,8136.211.207.41
Shaquille O’Neal2000LAL796,2115.461.867.32
Tim Duncan2004SAS694,7412.624.677.30
Shaquille O’Neal2004LAL674,8304.672.587.24
Shaquille O’Neal1998LAL604,2734.962.257.20
Tim Duncan2001SAS826,0392.594.577.15
Manu Ginobili2007SAS754,0064.642.507.14
Dirk Nowitzki2004DAL775,7925.711.367.07
Shaquille O’Neal1999LAL493,2865.541.436.97
Alonzo Mourning1999MIA463,1522.794.106.90
Jrue Holiday2019NOP675,2124.981.916.89
Dirk Nowitzki2003DAL806,1184.592.276.86
LeBron James2017CLE745,6556.270.486.75
Dirk Nowitzki2012DAL624,0574.362.356.71
LaMarcus Aldridge2018SAS754,9552.993.716.70
Tim Duncan2007SAS805,1252.574.106.67
Stephen Curry2019GSW695,0584.582.096.66
Tim Duncan2002SAS826,3242.204.416.61
Dirk Nowitzki2011DAL734,9094.092.516.60
Stephen Curry2015GSW805,5345.561.026.58
Chris Paul2015LAC825,7294.661.916.57
Paul George2019OKC776,1724.282.286.56
Shaquille O’Neal2002LAL674,7284.072.496.55
LeBron James2014MIA775,6346.220.316.53
Alonzo Mourning1998MIA583,5422.733.806.53
Kevin Garnett2012BOS603,5831.724.766.48
Dirk Nowitzki2013DAL533,3324.402.046.44
Christian Laettner1997ATL825,7033.482.946.42
Stephen Curry2018GSW513,5756.50-0.136.37
Steve Nash2007PHX765,4526.49-0.126.37
Chris Paul2014LAC624,4534.232.146.37
Steve Nash2008PHX815,7106.37-0.056.33
Manu Ginobili2005SAS744,1913.602.686.28
Michael Jordan1997CHI825,9284.391.886.27
Terry Mills1997DET793,5924.491.776.26
Rasheed Wallace2004DET684,4282.134.126.25
John Stockton2001UTA824,6213.652.596.24
Nikola Jokic2016DEN803,4880.705.546.23
LeBron James2013MIA765,5495.670.556.22
Shaquille O’Neal2003LAL674,9915.141.076.22
Metta World Peace2006SAC564,2551.854.376.22
Mookie Blaylock1998ATL705,0034.172.016.18
Chris Paul2017LAC613,8893.612.556.16
Steve Nash2009PHX745,1096.62-0.476.15
Nikola Jokic2018DEN754,9834.122.016.14
Tim Hardaway1997MIA815,9173.722.426.14
Andre Iguodala2014GSW634,1451.484.646.12
Manu Ginobili2006SAS653,5104.341.766.10
Kyle Lowry2016TOR775,5713.662.436.09
Rudy Gobert2017UTA815,2462.303.786.08
David Robinson1999SAS492,9051.714.366.07
Kevin Garnett2000MIN816,2933.062.996.04
Russell Westbrook2016OKC805,6615.220.806.02
Rasheed Wallace1999POR492,7252.023.996.01
Steve Nash2010PHX815,4266.43-0.436.00
Chris Paul2013LAC704,4895.380.626.00
Manu Ginobili2008SAS744,4703.732.276.00
Jason Kidd2005NJN664,7103.972.025.99
John Stockton2002UTA824,9573.152.855.99
Mookie Blaylock1999ATL483,2243.902.085.98
Shaquille O’Neal2005MIA734,8154.011.955.97
Mike Conley2013MEM805,1683.882.095.97
Kevin Garnett2010BOS694,0410.335.605.93
Bo Outlaw1997LAC824,2241.454.455.90
Scottie Pippen1997CHI825,9244.581.315.89
Michael Jordan1998CHI826,0104.341.545.89
Robert Covington2018PHI805,3471.644.255.89
Dirk Nowitzki2002DAL765,7314.681.175.85
Davis Bertans2019SAS763,4543.612.235.84
Kobe Bryant2008LAL826,4885.520.285.80
Kyle Lowry2017TOR604,4692.872.935.80
Kevin Garnett2013BOS683,899-0.486.285.80
Steve Nash2011PHX755,0305.390.405.79
Chris Paul2016LAC744,9354.361.445.79
Draymond Green2015GSW795,2201.684.105.78
Joel Embiid2019PHI644,6722.842.935.76
Mookie Blaylock1997ATL785,6034.561.195.75
Andrei Kirilenko2006UTA694,8262.962.765.72
LeBron James2008CLE755,8314.451.225.67
Tim Duncan2006SAS805,1881.374.315.67
Dwight Howard2010ORL825,4692.772.805.57
Dwight Howard2011ORL785,6301.374.165.53
Dirk Nowitzki2005DAL785,9623.472.055.52
Lamar Odom2009LAL784,6401.963.535.50
Alonzo Mourning1997MIA664,3321.563.955.50
Andrei Kirilenko2004UTA785,3633.631.865.49
Kevin Garnett1999MIN473,4672.253.245.49
Chris Paul2011NOH805,4384.171.305.46
Mike Conley2019MEM704,7823.951.505.46
Kemba Walker2018CHA805,6693.242.225.46
Gary Payton2000SEA826,7694.790.655.44
Nick Collison2013OKC813,1502.532.905.43
Steve Nash2006PHX795,6795.95-0.545.41
Tim Hardaway1998MIA815,7054.410.995.40
Jeff Hornacek1997UTA825,0074.121.275.39
Danny Green2019TOR804,6673.821.575.39
Chris Paul2018HOU583,7923.691.705.39
Kyle Korver2018CLE733,3133.581.815.39
Amir Johnson2013TOR814,4393.152.255.39
Kevin Garnett2011BOS714,276-0.055.445.39
Kawhi Leonard2016SAS724,7021.314.075.38
Dikembe Mutombo2000ATL825,7500.065.325.38
David Robinson2000SAS804,8671.723.655.37
Grant Hill1999DET503,4444.191.165.36
Kevin Garnett2006MIN765,5372.822.525.34
Chris Paul2012LAC604,1164.101.235.33
Eddie Jones2000CHH725,5812.732.585.32
Kawhi Leonard2015SAS644,0291.683.625.30
Dirk Nowitzki2007DAL785,3434.430.865.29
LeBron James2019LAL554,2183.142.155.29
Damian Lillard2019POR805,9844.620.655.27
Kevin Garnett1998MIN826,3132.272.975.25
Draymond Green2017GSW765,2621.184.055.23
Dwight Howard2012ORL543,8911.014.225.23
John Stockton2000UTA824,6962.732.465.20
Karl Malone1998UTA815,7885.070.135.19
Rashard Lewis2009ORL795,6092.932.245.18
Kawhi Leonard2017SAS744,8914.141.005.15
Jimmy Butler2018MIN594,3253.161.965.13
Eric Bledsoe2019MIL784,9481.923.225.13
Rasheed Wallace2000POR815,4361.563.535.10
LeBron James2007CLE786,1243.461.635.09
Dirk Nowitzki2006DAL815,7743.841.245.08
Lamar Odom2010LAL825,1271.203.875.07
Chauncey Billups2009DEN795,5064.620.445.06
Jrue Holiday2018NOP816,2421.923.145.06
John Stockton1998UTA643,5253.211.835.05
Kobe Bryant2010LAL735,5704.210.825.04
Kevin Garnett2007MIN765,7452.652.395.04
Paul Millsap2012UTA644,0602.632.415.04
Lamar Odom2011LAL825,0772.023.015.02
John Stockton2003UTA824,3372.892.125.01
Dirk Nowitzki2008DAL775,3194.240.765.00
Ray Allen2003SEA765,4564.020.985.00
Baron Davis2007GSW634,6163.691.325.00
Andre Iguodala2015GSW774,2831.773.235.00
Stephen Curry2016GSW795,7795.06-0.074.99
Stephen Curry2014GSW785,8264.440.544.98
Steve Nash2012PHX623,8984.570.414.97
Dirk Nowitzki2014DAL805,2923.701.274.97
Manu Ginobili2014SAS683,1994.310.654.96
Eric Gordon2019HOU684,4834.550.404.95
James Harden2018HOU725,2235.47-0.554.92
Jason Kidd2004NJN674,7653.291.634.92
Karl Malone1997UTA825,7724.770.144.91
Patrick Patterson2017TOR653,2192.622.294.91
Tyus Jones2018MIN822,9853.231.684.90
Patrick Ewing1997NYK785,5861.103.804.90
Tim Duncan2013SAS694,1241.063.844.90
Grant Hill2000DET745,6974.810.084.89
Dirk Nowitzki2009DAL815,9724.010.874.88
Ray Allen2001MIL826,1644.350.524.87
Grant Hill1998DET816,1933.161.714.86
Nick Collison2014OKC812,7262.352.514.86
Karl-Anthony Towns2018MIN825,8524.370.484.85
Tim Duncan2008SAS784,9401.753.084.83
Ekpe Udoh2012MIL612,5211.103.734.83
Shane Battier2007HOU825,7670.424.404.82
Jeff Hornacek1998UTA804,7544.190.634.81
Andrei Kirilenko2005UTA412,5292.931.874.80
Tim Duncan2012SAS583,1920.594.214.80
Kobe Bryant2009LAL825,9114.700.084.78
Metta World Peace2008SAC574,3761.713.074.78
Clint Capela2016HOU773,0672.452.314.76
Reggie Miller1998IND815,2934.220.534.75
Jusuf Nurkic2019POR724,1712.022.734.75
Baron Davis2005GSW463,0623.351.394.74
Alonzo Mourning2000MIA795,2681.673.074.74
Kevin Garnett1997MIN775,7420.783.974.74
Ray Allen2010BOS805,4813.750.984.73
Tim Duncan2016SAS613,0300.753.984.73
Kyle Korver2015ATL754,8663.331.404.72
Paul Pierce2005BOS825,8743.051.674.72
Damian Lillard2017POR755,5116.09-1.384.70
Kobe Bryant2001LAL685,4603.760.934.70
Joe Ingles2019UTA825,4671.752.944.70
Jeff Foster2005IND612,9740.863.844.70
Arvydas Sabonis1999POR502,5312.192.494.68
Nikola Jokic2017DEN734,2644.240.424.67
George Hill2017UTA492,9851.423.234.65
Steve Nash2005PHX755,2285.79-1.154.64
Patrick Patterson2016TOR793,9574.300.344.64
Tim Duncan1999SAS503,6862.651.994.64
Toni Kukoc1998CHI744,2491.842.794.64
Greg Ostertag1997UTA773,4251.842.814.64
Russell Westbrook2014OKC462,9333.601.034.63
Joel Embiid2018PHI634,0342.871.764.63
Patrick Beverley2014HOU563,5002.821.814.63
Shane Battier2006MEM815,1960.564.074.63
Chris Paul2010NOH453,3034.430.194.62
Robert Horry1998LAL724,3372.741.884.62
Tim Duncan2009SAS754,7121.623.004.62
Dirk Nowitzki2001DAL826,1922.122.494.61
Brook Lopez2019MIL815,0691.073.544.61
Rudy Gobert2018UTA563,700-0.114.724.61
John Stockton1999UTA502,6172.691.914.60
Al-Farouq Aminu2019POR814,8282.721.884.59
Jimmy Butler2017CHI765,6542.022.584.59
Nick Collison2012OKC632,5461.842.754.59
Rasheed Wallace2005DET794,9791.343.254.59
Rasheed Wallace2002POR795,6231.513.084.58
Detlef Schrempf1998SEA785,1994.060.514.57
Chris Paul2009NOH785,6074.89-0.344.55
Kevin Durant2014OKC816,3424.300.244.54
Vince Carter2013DAL814,2502.621.914.53
Toni Kukoc1997CHI573,1623.241.284.52
Shaquille O’Neal2006MIA593,5072.302.184.49
David Robinson2003SAS643,189-0.074.564.49
Ben Wallace2004DET815,726-0.164.644.49
Manu Ginobili2011SAS804,8803.950.534.48
Derek Fisher2002LAL703,8872.971.514.48
Paul Millsap2013UTA784,5601.992.494.48
Nene2011DEN754,5500.883.604.48
Dirk Nowitzki2010DAL815,9542.841.634.47