by Kevin Harlow
May 19, 2003
I thought I’d throw together a couple of pieces of OPS Junk that I had lying around. First up is an expression for OPS in terms of modified bases per PA.
OPS = OBP + SLG
OBP = (H + BB)/PA
SLG = TB/AB
SLG = (TB/AB)*(PA/PA)
SLG = (TB/PA)*(PA/AB)
SLG = (TB*(AB+BB)) / (PA*AB)
SLG = [(TB*AB + TB*BB) / AB] / PA
SLG = (TB + SLG*BB)/PA
OPS = (H+BB)/PA + (TB+SLG*BB)/PA
OPS = [TB+H+BB*(1+SLG)]/PA
That equation should put to rest for good the silly “different denominator” argument against OPS. Note that the modified bases in OPS is actually slightly nonlinear with respect to the events. The factor for BB increases with increasing SLG. This interaction is good on the team level in much the same way as the interaction between OBP and SLG in the original Runs Created by James and bad for individuals due to the fact that an individual’s BB (or OBP) interacts with his team’s SLG, not his own.
Now what about calculating how many runs a player creates, either as a counting stat or on a per PA basis? A darn good way is to use “Linear Weights”. Linear Weights, as its name implies, calculates the runs created as the sum of constant coefficients times the events. The optimal Linear Weights depends on the run environment, so it can get a little tricky trying to remember all the optimal weights. What I do is try to make it easy on myself by using an easily remembered set of “somewhat-near-optimal” weights.
RC = 0.33*BB + 0.5*S + 0.8*D + 1.1*T + 1.4*HR - 0.1*Outs
RC = 0.33*BB + 0.2*H + 0.3*TB - 0.1*Outs
Surely those are easy enough to remember? Enough about that for now – this is about OPS Junk. In the following derivation, a simplifying assumption that SLG~=0.430 is used. Also note that the new equation for OPS is used in this derivation.
RC = 0.33*BB + 0.2*H + 0.3*TB - 0.1*Outs
RC = 0.33*BB + 0.2*H + 0.3*TB - 0.1*(PA-TOB)
RC = 0.33*BB + 0.2*H + 0.3*TB - 0.1*PA + 0.1*H + 0.1*BB
RC = 0.43*BB + 0.3*H + 0.3*TB - 0.1*PA
(RC/PA) = (0.3*(H + TB + 1.43*BB) / PA) - 0.1
(RC/PA) = (0.3*[H + TB + BB*(1 + SLG)] / PA) - 0.1
(RC/PA) = 0.3*OPS - 0.1
And on an out basis it is as follows:
(RC/Outs) = (RC/PA)*(PA/Outs)
(PA/Outs) = 1/(1-OBP)
(RC/Outs) = (0.3*OPS – 0.1) / (1-OBP)
So there’s an extra factor for OBP when you express the runs created on an out basis, which you might correctly would guess would mean that runs created per out is more sensitive to changes in OBP than SLG. We can calculate the relative importance of OBP compared to SLG for (RC/Outs) starting from the above equation.
(RC/Outs) = (0.3*OPS – 0.1) / (1-OBP)
(RC/Outs) = (0.3*OBP + 0.3*SLG – 0.1) / (1-OBP)
d(RC/Outs)/d(OBP) = 0.3 / (1-OBP) + (0.3*OBP + 0.3*SLG – 0.1) / (1-OBP)^2
d(RC/Outs)/d(SLG) = 0.3 / (1-OBP)
(d(RC/Outs)/d(OBP)) / (d(RC/Outs)/d(SLG)) = 1 + (OBP + SLG – 0.333) / (1-OBP)
(d(RC/Outs)/d(OBP)) / (d(RC/Outs)/d(SLG)) = 1 + (10/3)*(RC/Outs)
On average (a 4.5 RPG league) that ratio works out to about 1.56. Of course it’s a bit different for a guy (or a team of guys) like Bonds. For Bonds in 2002 the above equation works out to 3.51. Then again, the event coefficients for a team of Bonds would be quite different than the average.
Go to Kevin Harlow's home page.