Monday, February 25, 2008

Beating a Dead Horse, pt. 4

In the (finally!) conclusion to this series, I’m going to look at a couple of other rate stats that while not nearly as common as OPS, are amazingly common in their “invention”, if not in their use.

I refer to the multitude of statistics based on the number of bases a player has accounted for, divided either by his plate appearances or by his outs made. I am going to present a list of proposed stats based on this concept. Almost all of the ones I will list have been published in books or in SABR publications; it would be impossible to document all of the times that these types of metrics have been floated on message boards and other similar outlets. What is incredible to me about the reoccurrence of this idea is that most of the “inventors” seem to be utterly clueless that their great idea has been proposed countless times before. Barry Codell is the only one out there who can take credit for actually coming up with something new.

1) Codell published a piece on his Base-Out Percentage in a late 1970s SABR Baseball Research Journal:

BOP = (TB + W + HB + SB + SH + SF)/(AB - H + CS + SH + SF + DP)

2) Thomas Boswell, a columnist for the Washington Post, published his Total Average in Inside Sports:

TA = (TB + W + HB + SB)/(AB + W + HB + SB + CS)

3) Thomas Boswell quickly revised his TA, making it for all intents and purposes a knockoff of BOP:

TA = (TB + W + HB + SB)/(AB - H + CS + DP)

4) Breaking out of chronological order, Paul Adel posted on the internet about his Offense Ratio:

OR = (TB + W)/(AB - H)

5) Leo Leahy in his book Lumber Men introduced Bases to Out Ratio:

BTOR = (TB + W)/Outs

6) Lawrence Tenbarge, wrote in the 1996 SABR Baseball Research Journal about his Earned-Base Average:

EBA = (TB + W)/PA

7) Apparently unrelated, John McCarthy had his own EBA in his book Baseball’s All-Time Dream Team:

EBA = (TB + W + SB - CS)/(AB + W)

8) Stephen Grimble, in a book called Setting the Record Straight: Baseball’s Greatest Batters, used Base Production Average as a secondary measure:

BPA = (TB + W + SB - CS)/(AB + W)

9) Bill Gilbert has posted on the internet for many years now about Bases per Plate Appearance:

BPA = (TB + W + HB + SB - CS - DP)/(AB + W + HB + SF)

10) In their 1994 book, Essential Baseball, Norm Hitzges and Dave Lawson published TOPR (thanks to "Karmadrome" for the info, and see his comment below for additional details on Hitzges and Lawson's work):

TOPR = (TB + W + HB + SH + SF + SB - CS - DP)/(AB - H + SH + SF + CS + DP)

11) In the 2000 Baseball Research Journal, Mark Kanter wrote about New Production:

NewProd = (TB + W + HB + INT)/(AB + W + HB + INT + SH + SF)

12) I wrote this article sometime in late December or early January, as I am wont to do. Two weeks ago, another one emerged from Greg Raleigh at Dugout Central, “Bases Per Out”. This is amusing in its own right since that is the site where Mike Pagliarulo throws out barbs at sabermetricians. Anyway:

BPO = (TB + W + HB + SB + SF + SH)/(AB - H + CS + SF + SH + DP)

I documented all that not because it’s important, but because I find it amusing. None of these measures (with the exception of TA, which was carried in Total Baseball, first for all players and in later editions just for season and all-time leaders) ever caught on, and so countless people “discovered” them. Boswell himself is delusional about the history of the idea, as evidenced in a 2005 chat:

“What matters is that ONE of the "new" stats created in the early '80--Total Average, Runs Created, OPS, etc--all of which were different versions of my TA (which was first) has gotten general acceptance.”

Since TA was preceded by BOP in the bases/outs ratio format, Boswell’s claim is absurd on its face, but of course Bill James introduced RC in 1979 (the same year as Boswell, and presumably in the spring as well), and Pete Palmer developed OPS sometime in the 1970s--although I’m not sure when he first published it, it was before 1979. Also, RC is essentially a repackaging of Earnshaw Cook’s Scoring Index (1964) or Dick Cramer’s BRA (mid-1970s), or Dick Cramer’s BWA (mid-1970s as well). Boswell didn’t even invent bases/out, let alone beat sabermetricians to developing advanced measures of offensive performance.

Is there really anything worth arguing about, though? Are there multiple people taking credit for developing New Coke? We’ll examine the two variations on the idea, one per PA and one per out. Since we are comparing with OPS, I’m only going to consider categories that OPS considers, which means we can define our two stats, which I’ll call BPA and TA, pretty easily:

BPA = (TB + W)/(AB + W)
TA = (TB + W)/(AB - H)

Just looking at them, you can see right off the bat that walks are weighted equally to singles, which we know is incorrect, and that a homer will be worth four times a single, twice a double, … Neither the faulty total base relationship nor the walk = single contention has a counterweight, which is not the case in OPS, where the faulty total base relationship present in SLG is offset by the equal treatment of all on base events in OBA, and the equality of OBA is offset by SLG.

It should come as no surprise, then, that when we look at equations to predict runs from these stats that they are not as accurate as those derived from OBA and SLG:

aR/P = 1.51(aBPA) - .52 RMSE = 27.12
aR/P = 1.19(aTA) - .20 RMSE = 24.95
aR/O = 1.78(aBPA) - .78 RMSE = 31.10
aR/O = 1.42(aTA) - .42 RMSE = 25.66

Total Average does better than BPA at predicting both R/PA and R/O, so we’ll remove BPA from the discussion at this point. When we use TA as a run estimator to predict R/PA, or as a stand alone rate stat (which in part one of this series I contended obligates one to consider the R/O relationship), what are we saying about the values of the offensive events?

Knowing that the TA for our data as a whole was .658, we can work on both equations, starting with R/O, which can be rewritten as:

Runs = (1.42*aTA - .42)*(AB - H)*.172 = .371*TA*(AB - H) - .072*(AB - H)

There is no need to differentiate this, since by definition TA*(AB - H) = TB + W. So we have Runs = .371(TB + W) - .072(AB - H), which can be expanded out to:

LW = .37S + .74D + 1.11T + 1.48HR + .37W - .072(AB - H)

So TA severely underweights singles, while overweighting homers and walks.

Looking at the PA relationship:

Runs = (1.19*aTA - .20)*(AB + W)*.117 = .212*(TA*PA) - .0234*PA

Differentiating, we get:

LW = .212*(pTA + PA*dTA) - .0234p

Where dTA = (O*b - B*o)/O^2, where O = outs, B = bases (TB + W), o = 1 for an out, b = total base weight of any event, and 1 for a walk as well. For our dataset, this results in:

LW = .43S + .74D + 1.06T + 1.37HR + .43W - .09(AB - H)

Here, the hit values are more reasonable, but the single is still undervalued, and the .06 run bump it received also is parceled out to the walk, compounding that issue.

Total Average and all of its cousins are just too simplistic to provide a good model of offense. The idea of working from bases is not a bad one; while runs are the most fundamental unit to work with, bases are highly correlated with runs. But the problem is that TA focuses only on the bases that are gained by the batter, and not by the impact that the batter has on the baserunners. There is no difference between a single and a walk if the bases are empty; it is the fact that singles often advance runners by two bases, or advance runners when walks do not force them, that makes singles more valuable. TA disavows this basic knowledge, and thus the weights used do not reflect the true value of offensive events. If you could account for all of the bases that a player is responsible for (or estimate them), then you would have a much better foundation from which to evaluate them.

So please, please, stop “inventing” these statistics, unless you are twelve years old, in which case you may have a pretty good future as a sabermetrician.

Monday, February 18, 2008

Power: Who Needs It? (Or so we hope)

This Friday, the Ohio State baseball team will open its 125th season. February 22 is an odd date to start a baseball season, but at least the NCAA has finally decided that all teams have to wait until then. When a group of OSU base ballers hosted their neighbors from Capital University on May 21, 1881, they would likely have though the notion of February baseball played in Florida downright odd.

Anyway, the situation is what is for the teams of the north, and the Buckeyes navigated it quite well last year, struggling to a .500 record in conference play, sneaking into the Big Ten Tournament, and then proceeding to sweep right through in four games. With a twelfth Big Ten crown for coach Bob Todd ensured, OSU went to College Station to play in Texas A&M’s regional, where they acquitted themselves nicely, losing to Louisiana-Lafayette, beating LeMoyne, and bowing out against the hosts.

However, the late surge did tend to mask a regular season in which expectations were not met. The injury to #1 starter Dan DeLucia did no favors, but the real culprit of OSU’s average campaign was the offense. The Bucks allowed 5.3 park-adjusted runs per game versus the average of 6.1, but scored just 6.2. Ohio collected hits and walks at slightly above average rates, but hit for very little power--a .089 ISO vesus the conference mark of .114.

As we look ahead to 2008, things do not look better on that front. The Buckeyes lost catcher Eric Fryer (+10 RAA) and center fielder and leadoff hitter Matt Angle (.458 OBA, +20) as junior draftees, while DH and #2 hitter Jacob Howell (.371 OBA, +2) and middle infielder Jason Zoeller (+14 and 9 of the team’s 21 longballs) were lost to graduation.

As a result, the offense lacks punch even more blatantly than it did last season. Junior Justin Miller will move into Fryer’s vacated backstop slot; he hits for a high average but puts up little in the way of secondary numbers. A high school catcher, he will be a plus hitter at that position. His backup will be freshman Dan Burkhart, with sophomore Shawn Forsythe next in line if something should happen to them.

Miller’s position switch leaves first base open, and it appears as if true freshman Ryan Meade will be expected to win the job. The double play combination will be a pair of sophomores. Cory Kovanda took over second base midway through the season and played solid defense, although he was -8 runs offensively with a SLG of just .325; he did post a .352 OBA. Cory Rupert started the season at shortstop, then lost his job as he didn’t hit at all and struggled in the field. When he was reinstalled late, his fielding was much improved, but his overall hitting was -10 with just a .283 OBA and .303 SLG. I expect them to be as good defensively as any recent OSU keystone combination, and I wouldn’t be surprised to see Kovanda emerge as a solid on base guy.

At third base, sophomore Brian DeLucia, younger brother of Dan, will step into the starting role. In his limited time last year, he showed a solid glove and average bat in 47 PAs. He apparently has some power potential. Tony Kennedy, who started at the hot corner last year, could get some time there but will likely play the outfield.

The infield corners will be backed up by senior Chris Macke, who has hit decently in limited opportunities throughout his career. Other reserve infield roles will be filled by sophomore Ben Toussant and freshman Tyler Engle.

In the outfield, Kennedy, who posted a .397 OBA and +5 runs last year, seems to be in line to start in left field. Junior JB Shuck will slide over to center; he was +5 runs last year despite having a rough go of it late, and may be the team’s best offensive player. Sophomore Ryan Dew will be in right field, where he played frequently last year; he is probably the team’s best hope for a real power threat, although he didn’t show much in that department last year.

The top outfield reserve (and a likely DH candidate along with Macke) will be junior Michael Arp. Sophomore Zach Hurley can backup center, while classmate Chris Griffin and redshirt freshman Brad Brookbank look to get in the mix.

On the hill, DeLucia will be the ace, when he is ready to pitch after Tommy John surgery. Whether he will pitch like an ace or not is of course an open question, but the fifth year senior was a leading preseason candidate for Big Ten Pitcher of the Year in 2007. Unfortunately, Cory Luebke, who wound up winning the award, was drafted by the Padres. That leaves Shuck as the #2 starter (+5 RAA and a 6.56 eRA after a better freshman debut aided by a low BABIP). Big junior righty Jake Hale will be the #3; he was a starter as a freshman, and moved to closer last year before being put back in the rotation late. He pitched well with a 4.64 RA and +11, improving on a solid debut.

The #4 spot will be up for grabs; junior Josh Barerra (+2 in 8 appearances) would seem to be the favorite, as he was in the mix before an injury shortened his 2007 campaign. Eric Best, a sophomore lefty who pitched well out of the pen last year, is listed by the official preview as another candidate for the rotation along with redshirt freshman Dean Wolosiansky, leaving sophomore lefties Josh Edgin (-2 in 19 games) and Theron Minium (-8 in 13 games) in the bullpen.

Senior Rory Meister is back in the closer role; if he can find his command, he can be a stopper as he was as a freshman. Recently, though, he has been less than automatic. Sophomore righties Taylor Barnes and Brad Hays will also be in line for some relief appearances. Four true freshman pitchers will also be on hand, although it is unclear if any is expected to make an impact.

The non-conference schedule looks a little tougher than it did a year ago. The opening weekend, starting Friday, will be played in Tennessee, and the Bucks will face Arkansas State, Memphis, and Seton Hall. A week later, OSU returns to College Station to face Texas A&M, Louisiana Tech, and Arkansas for a meat grinder of a weekend. March 7 sees the team in West Palm Beach to take on Air Face, Maine, and UConn. The traditional spring break trip to Bradenton runs from March 15-21 against Bucknell, Dartmouth, Northern Iowa, Bradley, St. Louis, Army, and Kansas.

The home opener is Wednesday the 26th against Pitt. Other midweek opponents (all home) will be Toledo, Central Michigan, Louisville, Akron, Eastern Michigan, Marshall, and Buffalo (the home finale on May 13). The Big Ten season opens Friday the 28th with the Bucks hosting Penn St. Traditional foe Minnesota is in a week later, then OSU travels to Michigan St. The ridiculous front-loading of home games continues with Purdue, then Ohio goes to Northwestern and Michigan. The Big Ten home slate ends the weekend of May 9 with Illinois, and a trip to Iowa closes things out. The Buckeyes will not face Indiana in the regular season for the first time since 1943.

In summation, the Buckeyes should be able to put out an above average defense as usual. The success of the team will depend on whether the offense can score enough runs. There is potential there, and I am bullish on the multi-year outlook for the program, but it could be a big struggle to score baserunners this year.

Monday, February 11, 2008

Beating a Dead Horse, pt. 3

So far we have considered several different means of adding OBA and SLG together to measure offensive productivity. Now we will look at other means of combining OBA and SLG, namely multiplication.

OBA*SLG (OTS) is a relationship that has been known in sabermetrics for many years. It has been independently developed at least three times. The first was by Earnshaw Cook, who in Percentage Baseball and the Computer presented a model that was essentially OBA*SLG. Then Dick Cramer developed his Batter’s Run Average, which was published in SABR’s Baseball Research Journal at some point in the 1970s; BRA actually was defined as OBA*SLG. Cramer later developed this into Batter’s Win Average, which was based around a model of BRA*PA. The third is the most famous, the Runs Created formula of Bill James, originally written as (H + W)*TB/(AB + W). Given the assumptions about calculating OBA that I have been making throughout this series, RC is precisely equal to OBA*SLG*AB.

I am not going to go too in-depth in discussing the flaws of these methods, because I and many others have noted the flaws of Runs Created elsewhere. Briefly, RC attempts to model run scoring, but fails to take into account many logical properties that such a formula should have (Base Runs addresses several of these problems, but while less flawed, is also not perfect). (Basic) RC underweights walks and overweights all types of hits but particularly extra base hits. As a team scoring model, it is inappropriate for application to individual players, and because of the design shortcomings, can boomerang out of control for extreme environments.

Another OTS-based method comes from David Smyth, who has advocated the use of OTS*34 as a quick estimator for runs/game. You may look at that and wonder how multiplying by a constant helps anything.

First, we have to recognize what estimated unit OTS is expressed in. As you can see, RC = OTS*AB; so OTS is an estimate of runs/at bat. So Smyth’s formula converts runs/at bat to runs/game, and is essentially assuming 34 at bats/game.

The average major league game does have something around 34 at bats (for the data I have used throughout this series, the average is within .15 of 34). Of course, we know that the number of at bats any team gets will depend on their own BA and OBA. By holding AB/game constant, the formula is attempting to counterbalance the fact that OBA*SLG goes overboard in predicting the run creation rate of good teams.

When you apply the R/G estimate to actual major league teams by assuming 25.2 outs/game, the RMSE is 25.25 (I used OBA*SLG*1.36*(AB - H)). This is actually more accurate than Basic RC (OBA*SLG*AB), which comes in at 26.09, and presumably the benefits are greater when applied to extreme players.

Another twist on the idea of multiplying OBA and SLG is a method posted by “dq” on the Inside the Book blog. In it, OBA and SLG are each raised to powers, with the SLG power being dependent on OBA. This is designed to alleviate the issues caused by applying OBA*SLG to extremely high offense situations. OTSE, for “Onbase Time Slugging, Exponential” is defined as:

OTSE = PA*OBA^.85*SLG^(1-OBA/2)*.652

For the data we’ve been working with here, a multiplier of .668 will be used, since our OBA does not include HB or SF. This will still throw off the entire equation a bit, though, since the OBA version we are using is not the same as the one it was designed to work with.

Throughout this series, I have not discussed what happens at extreme levels of performance too much. Do not think for a minute that this is because I feel that the extremes are unimportant; I am always concerned about theoretical accuracy in addition to empirical accuracy. However, in the case of the cruder metrics being considered (OPS, OPS+, OTS, etc.), we can see their flaws even at normal levels of offensive performance. It is the better constructed metrics for which a more thorough investigation is warranted.

Of course, for a formula like OTSE, it is at the extremes where it shows its superiority. As shown in the link above, OTSE matches our expectations for linear weights in extreme environments better than the more simple OBA/SLG combinations. However, when used with average teams using OBA = (H + W)/(AB + W), it leaves a little bit to be desired on the linear weight level:

LW = .52S + .78D + 1.05T + 1.31HR + .36W - .103(AB - H)

The big issue is that homers are underweighted by around a tenth of a run. However, OTSE is a lot more robust than other OBA/SLG combinations.

With that being said, though, is it really worth it? The appeal of OBA/SLG combinations is rooted in the idea that the two stats are readily available. But when you have to resort to two non-linear operations, I think that any claim of “simplicity” is dead on arrival. If you do not consider OBA and SLG to be known, and have to figure them and then plug into OTSE, it is far, far more complex than Base Runs. Furthermore, OTSE is not be applicable to individual batters for the same reasons that multiplicative run estimators like RC and BsR are not. So you may as well just figure Base Runs for the team and be done with it. I fail to see any practical application for which you would want to use OTSE.

I did not give the OTSE linear weight formula before the results that it generates, because I was hoping that someone would still be around to read those. The formula for the OTSE weights will scare everyone that’s left off:

LW = .668*((OBA*PA*.81*SLG^(-.19)*dSLG + SLG^.81*(OBA*p + PA*dOBA))

Monday, February 04, 2008

Beating a Dead Horse, pt. 2

Let’s examine how OPS and OPS+ actually weight offensive events when viewed as approximations of R/O. We had this equation for runs from aOPS:

Runs = (2.06(aOPS) - 1.06)*(AB - H)*.172

If you remember that LgOPS is a constant .715 for our sample, we can rewrite that formula as:

Runs = .495*OPS*(AB - H) - .182*(AB - H)

Then, we can differentiate to find the linear weights for each event:

LW = .495(O*dOPS + OPS*dO) - .182*(dO)

Where O is outs, dOPS is the derivative of OPS with respect to a given event, and dO is the derivative of outs with respect to a given event (1 for an out, 0 for anything else).

dOPS = dOBA + dSLG, with dOBA and dSLG defined similarily, and calculated thusly:

dOBA = (P*n - N*p)/P^2 where P = PA, N = H + W, n = 1 for an on base event, 0 for an out, p = 1 for all events

dSLG = (A*t - T*a)/A^2 where A = AB, T = TB, t = 1 for a single, 2 for a double, …, and a = 1 for all events except walks (0).

If you go through this process with an average team in our sample, you will find that the equation for runs can be rewritten for the average team as:

Runs = .45S + .82D + 1.18T + 1.55HR + .23W - .08(AB - H)

From this, you can see how OPS treats the offensive events, at least for an average player or team. It underweights singles a bit, while doubles get a pretty fair value, but it overvalues the triple and the home run while undervaluing the walk.

We can do the same thing with the OPS+ equation:

Runs = (1.06(OPS+) - .06)*(AB - H)*.172

Which reduces to:

Runs = .563*OBA*(AB - H) + .466*SLG*(AB - H) - .193*(AB - H)

Which can be differentiated to:

LW = .563*(OBA*dO + dOBA*O) + .466*(SLG*dO + dSLG*O) - .193*(dO)

Which, when applied to the average team, gives us this:

Runs = .47S + .81D + 1.16T + 1.50HR + .26W - .087(AB - H)

You can see that OPS+ is an improvement over OPS, as all of the weights come more in line to what we would expect--but it is still undervaluing the walks and overvaluing super extra base hits.

There is nothing novel about exposing the fact that OPS leaves something to be desired--this has been shown by others before, they are still not awful for a quick and dirty estimate, etc. I do think it is useful to document what exactly they are. But this whole series is rehashing old news, and I do not want anyone to get the impression that I am saying otherwise.

Let’s talk about another way that people combine OBA and SLG. One very common formula is 1.2*OBA + SLG. The reason that a weight of 1.2 is used is that on the macro level, SLG is generally around 20% higher than OBA. This obviously is a relationship that varies, but for the long-term sample I have been using, the SLG is .391 and the OBA is .324--a 1.21 ratio. This in essence is a way to get to the insight of OPS+ without bothering with league averages--OPS+ uses the exact ratio for any given year, and the denominators aren’t the same if you expand them out, but generally, 1.2*OBA + SLG can be considered as similar to OPS+.

I saw a post on r.s.bb from some years ago that referred to 1.2*OBA + SLG as OPS*, so for the sake of completeness, let’s figure the regression equations for aOPS*:

aR/O = 2.12(aOPS*) - 1.12
aR/P = 1.79(aOPS*) - .79

Focusing on the r/o equation, knowing that the LgOPS* is .780, we can rewrite it as:

Runs = (3.26*OBA + 2.72*SLG - 1.12)*(AB - H)*.172

Which can be differentiated to:

LW = .561(OBA*dO + dOBA*O) + .468*(SLG*dO + dSLG*O) - .193*(dO)

As compared to the equation we got for OPS+:

LW = .563*(OBA*dO + dOBA*O) + .466*(SLG*dO + dSLG*O) - .193*(dO)

Confirming our premise that OPS* is a close cousin of OPS+ for average league OBA/SLG combinations. Obviously, the closeness of the relationship will depend on the league SLG/OBA ratio. In our case, it is 1.21, so they are nearly identical when we convert to runs. In modern leagues, OPS+ will usually be “better”, simply because the OBA/SLG ratio is higher than 1.2, and the more weight on OBA, the better (to a point, a point which OPS+ is a long way off from).

Some people have of course tried to figure the best weight based on approaches other than just evening out the contribution of each component on the league level. I’m going to run a regression here to do the same. I prefer an approach to try to find the best match for LW values, but this series is focusing on regressions. For the 1961-2002 sample, this is the equation we find:

aR/O = 1.376(aOBA) + .899(aSLG) - 1.273

This one can be rewritten as:

Runs = (4.247*OBA + 2.299*SLG - 1.273)*(AB - H)*.172

You can see that OBA is weighted at 4.247/2.299 = 1.85 times SLG.

Continuing to break this down:

Runs = .730*(OBA*(AB - H)) + .395*(SLG*(AB - H)) - .219*(AB - H)

Which differentiates to:

LW = .730*(OBA*dO + dOBA*O) + .395*(SLG*dO + dSLG*O) - .219*(AB - H)

Which gives us this equation:

Runs = .51S + .81D + 1.10T + 1.39HR + .33W - .102(AB - H)

These weights match our expectations better than any we have yet seen. The equation has a RMSE of 24.05, which is better than the aOPS and OPS+ based R/O estimators but not as good as the versions that estimate R/PA. So let’s take a look at a R/PA estimator:

aR/P = .902(aOBA) + .894(aSLG) - .795

Which can be rewritten as:

Runs = (2.784*OBA + 2.286*SLG - .795)*.117*PA

Here, the relative weight of OBA against SLG is 2.784/2.286 = 1.22. Remember, though, that this formula is attempting to estimate only R/PA. To convert to R/O, you would have to divide by (1 - OBA), which gives a lot more weight to OBA.

The version above, estimating R/O, attempts to be a final rate stat in and of itself, and in that case, the 1.8 weight on OBA is justified. But it is really more logical to first estimate R/PA and then convert to R/O. If you want a pretty x*OBA + y*SLG + z model, though, that approach doesn’t fit the bill.

Continuing, we have:

Runs = .326*(OBA*PA) + .267*(SLG*PA) - .093*PA

Which differentiates to:

LW = .326*(OBA*p + dOBA*PA) + .267*(SLG*p + dSLG*PA) - .093*p

Which gives these weights:

Runs = .52S + .81D + 1.10T + 1.39HR + .34W - .103(AB - H)

At this point, we have basically reached agreement between the two approaches (estimating R/PA and estimating R/O). Note that I do not actually endorse using these formulas to estimate runs scored; I am only using them as a means of discussing OBA/SLG combinations. Linear Weights and Base Runs, depending on the question at hand, are the only run estimators I endorse (I’m using “run estimators” to refer to those methods that can be easily written as a simple formula, not approaches like markov modeling, simulators, and the like).

As I mentioned earlier, regression is by no means the only (or best) approach to determining what the weights for OBA and SLG should be. Other people have looked at this in different ways. I will point you to one such study, Tango Tiger’s “OPS: Begone” series (part one and part two).

Let’s deal with one more OBA/SLG combination, Aaron Gleeman’s Gross Production Average. GPA = (1.8*OBA + SLG)/4. GPA starts with the 1.8 weight on OBA, which as we have seen is pretty reasonable, and then rescales the result by dividing it by four, making the scale resemble batting average.

I have previously criticized the use of this scale shift with EQA, but I do find it a bit more palatable in the case of GPA. I always think that it is best to have a statistic expressed in terms of estimated units, with the unit being something fundamental (I would consider things like OBA, R/PA, R/O, and R/G in this category). Batting Average is fundamental in the sense that it is still the statistic most in use among the general baseball public, it has had great relevance throughout history, etc., but it is not fundamental to understanding baseball. I would consider hit frequency (H/PA) to be a much more fundamental measure than the batting average.

So while I’m not fond of the BA scale personally, I understand that some people like it. The reason why I don’t like EQA goes deeper; it is that it cannot really be used for any mathematical comparison between players without serious adjustment. In the case of GPA, 1.8*OBA + SLG is roughly equivalent to R/O in terms of scale. A team whose 1.8*OBA + SLG is 20% better than another team figures to score about 20% more runs.

Dividing by four does nothing to eliminate this property, which I would call “ratio comparability” (see here). Dividing everything by a constant does not affect ratio relationships.

There is also “differential comparability”. An example would be that an OBA of .400, when compared to an OBA of .350, can be taken to mean not only “on base 14% more often”, but also “.050 more times on base per PA” (or 5 per 100 PA, etc.). OBAs are comparably by both ratio and difference.

GPA, on the other hand, is not differentially comparable. A .400 GPA is not .050 more anything than a .350 GPA, other than GPA points. It is a unitless measure. However, the same is true for 1.8*OBA + SLG. So the transformation to GPA does not remove a property that would otherwise be present.

If you look at the same questions for EQA, the conversion that Clay Davenport makes from estimated RC/out to EQA destroys both multiplicative and differential comparability that previously existed. That is why I dislike the EQA scale, but have only the mild objection to GPA that it is not expressed in a meaningful estimated unit.

Thursday, January 31, 2008

Sabermetrics Wiki

Tango Tiger has set up a sabermetrics wiki here. Hopefully, this will become a one-stop sabermetric encyclopedia and research diffusion center. For more information, see this thread, and then come over and contribute.

Tuesday, January 29, 2008

Best Hitting Infields and Outfields, 2007

In a BTF thread on the Phillies’ signing of Pedro Feliz, there was some discussion of whether or not he along with Howard, Utley, and Rollins gave them the best hitting infield in baseball. Obviously, that is a foreword-thinking question, but I thought that since I had the data by position for each team readily available, it would be mildly interesting to see which units performed the best last season.

The stats below are from the Baseball Direct Scoreboard; infielders are (duh) first baseman, second baseman, third baseman, and shortstops. Pitchers, catchers, and DHs do not factor in to the totals for either the infield or the outfield. All players who were classified by STATS as playing the position are included in the totals. There are no park adjustments, and RC does not include basestealing.

Beginning with infielders, three teams were within one-tenth of a run per game of the lead: the Yankees (6.19 RG), the Marlins (6.18), and the Phillies (6.14). Since the comments about Feliz inspired this little survey, it is worthwhile to note that third base was definitely the weakest infield position for Philadelphia last year (4.01)--however, Feliz himself created just 4.07 runs last year.

On the other side, the Giants trailed (3.90), followed by the Twins (4.00) and the White Sox (4.04). The overall average was 5.03.

The top hitting outfield was that of the Rockies (6.63), well ahead of the Tigers (6.34) and the Phillies (6.23). However, with a park adjustment, the Rockies drop to 6.03.

The average outfield created 5.17 runs. The worst hitters were on the south side of Chicago, as White Sox outfielders limped in at 4.34, ahead of the Mets, Diamondbacks, and Royals (4.40).

Monday, January 28, 2008

Beating a Dead Horse, pt. 1

Last summer, I had a post that I described as a rant about OPS, and my problems with the stat. I got (relatively) a lot of feedback about that piece, and you can add that fact to other evidence that shows OPS is still a topic of interest among people who are interested in sabermetrics. If you go to the kinds of discussion forums in which baseball fans of a sabermetric bent, but not themselves hard-core sabermetricians post, various combinations of OBA and SLG, along with rate stats revolving around bases gained, remain a popular topic.

More than one of the respondents to my post felt that it was in essence beating a dead horse, because all of the serious sabermetricians of the world have moved on and found more important things to worry about, and that enough has already been written on the topic to satisfy the inquiries of the less-informed. I largely agree with this; however, I am fairly stubborn by nature, and I like to express myself on sabermetric topics myself, even if others have already covered the matter thoroughly. So despite the fact that I agree that OPS is a topic whose time has passed, I am going to write a little series on it and its cousins. Also, I feel that if people are going to use OPS, they might as well understand how it relates to run scoring rates.

I would also add that by posting about it here, I do not expect anyone to pay attention to it. If you feel that horse has been bloodied enough, then by all means, pay no attention to this post. If no one else ever reads this, that would be just fine with me.

The earlier linked post did not deal a lot with numbers, which these will have more of. I don’t want to rewrite the same thing over again, but I do want to summarize my main points:

1) OPS is a quick and dirty statistic, and it is alright for this purpose. I am not saying that you should never, ever look at OPS.

2) OPS is a statistic which is unitless. If you write the formula over a common denominator, you have ((H + W)*AB + TB*(AB + W))/(AB*(AB + W)), which is a bunch of gobbledy-gook.

3) OPS also does not come in an estimated unit. Runs Created is an example of a stat that does; (H+W)*TB/(AB+W) is an estimate of runs scored. Obviously the result is not actually runs scored, thus it is an estimated unit (see my previous post for more on this). OPS does not have an estimated unit. “The higher the OPS, the better” or “OPS is an estimate of a player’s offensive productivity” are both true statements, but they do not confer a unit upon the stat.

4) OBA is a fundamental baseball statistic. If OBA did not already exist, you would want to invent it. SLG is not a fundamental baseball statistic, because it does not measure any fundamental quantity--it measures “bases gained by the batter on hits”. This is a unit, and it is a useful thing to know, but it is not fundamental. If this does not convince you, ask yourself the question, “What does SLG represent?” Some people will be tempted to say “power”, but that’s obviously false since it includes singles. Some people will say “advancement of baserunners”, which can be true, but it is also true that it is not even close the being the most accurate estimate of advancement. In contrast, there is no definition for a statistic that would better define what OBA attempts to define than OBA itself, at least that can be derived from the official statistics.

5) Because of points 2, 3, and 4, there is nothing special about OPS. When Pete Palmer comes around and invents “OPS+”, it may make sense to claim that the name is a little misleading, but it doesn’t make any sense to complain that it causes distortions in measuring performance because it deviates from OPS. Of course, it makes even less sense to complain about it when it was Palmer who invented both OPS and OPS+.

With that out of the way, let’s talk math. Throughout this series, I have defined OBA as (H + W)/(AB + W); I did not mess with HB or SF, so keep that in mind. Also, I will be focusing on things on the team level, and running a lot of regressions. Then I will be testing the accuracy of the equations on the same sample from which I derived them. I recognize that this is not the best approach to take, but I think that if you focus on the relative accuracy of the formulas to each other rather than the absolute RMSE figures, you will not be mislead too far.

Let’s start with the premise that we have OBA and SLG data for a large group of teams, and we want to estimate a run scoring rate from them. In this case, our large sample will be all teams 1961-2002, except 1981 and 1994. We will also look at using relative OBA, SLG, or OPS to predict relative runs scored, as established by the composite average for the dataset. I am doing it that way because that is how OPS+ is expressed, and because using a constant league average will wash out the adjustments.

Let’s define aOBA as OBA/LgOBA, aSLG as SLG/LgSLG, aOPS as OPS/LgOPS (this is what I called “SOPS+” in my earlier post), aR/P as (R/PA)/Lg(R/PA), and aR/O as (R/O)/Lg(R/O). OPS+ is OBA/LgOBA + SLG/LgSLG - 1, which is the same as aOBA + aSLG - 1.

When we regress OPS to estimate runs, what run rate should we regress to, R/PA or R/O? We can all agree that the most important thing to know about a team’s offense is its R/O, so that would seem to be the right choice. While this does not transfer perfectly to individuals, it is still true that R/O is more telling for them than R/PA is, and R/O is generally fine to use as an individual rate stat.

So let’s look at the equations to predict aR/O from aOPS and OPS+ for the sample in question:

aR/O = 2.06(aOPS) - 1.06
aR/O = 1.06(OPS+) - .06

Here we can see that OPS has a 2:1 relationship to runs scored. If you are 5% better than the league average in OPS, you will be approximately 10% better in runs scored per out (and, by extension, in runs scored). On the other hand, OPS+ has an almost 1:1 relationship to runs scored.

The practical implications of this are that if you see a player listed with an OPS+ of 125, you can interpret this as “the player is estimated to create 25% more runs/out than the league average.” It is of course an estimate, and it may not be as accurate as other estimates, but it does scale properly.

You cannot do the same thing with aOPS (and since aOPS is simply OPS divided by a constant, the same goes for OPS as well). If you have a batter with an OPS of 900 in a league with an OPS of 750, saying that his aOPS is 120 means nothing other than that his OPS is 20% higher than the league average. It does not mean that he created 20% more runs--in fact, he created something close to 40% more runs.

As I mentioned in the older piece, people are conditioned to expect that when they see a stat called X+, it will be calculated as X/LgX. OPS+ breaks this convention, and it is curious why Pete Palmer chose to name it as he did (originally it was PRO+, but OPS itself was PRO, so it was the same situation). However, Pete’s choice to use OPS+ instead of aOPS was a good one, as it is more accurate and expressed in estimated units that have meaning.

Once we have the above equations, we can estimate team runs scored and see how accurate the estimates are (keeping in mind the caveats about using the regression on the sample it was derived from). We can find Runs = aR/O*Lg(R/O)*O. We know that for our sample, BA = .258, OBA = .324, SLG = .391, R/PA = .117, and R/O = .172. Plugging everything in, the RMSE against actual runs scored is 25.72 for the aOPS equation and 24.88 for the OPS+ equation.

What would happen if we tried to predict R/PA, rather than R/O? We would get these equations:

aR/P = 1.74(aOPS) - .74
aR/P = .90(OPS+) + .10

The estimate for team runs scored will be Runs = aR/P*Lg(R/PA)*PA. The RMSEs in this case are 23.76 for the aOPS equation and 23.64 for the OPS+ equation--over a run better than the R/O predictions. Why is this?

First, let me claim without presenting any evidence that most statistics do better at predicting team runs scored when estimating R/PA than it does when estimating R/O. To understand why this is, we need to remind ourselves about the relationship between R/PA and R/O. Assuming, as we have in this case, that the only outs are batting outs and that there are no ways to reach base that are not included in OBA, the relationship R/O = (R/PA)/(1 - OBA) holds. This is not an “estimate”; it is a demonstrable mathematical truth. As you can see, the On Base Average is key, since it is the complement of the rate at which outs are made. It is better to estimate R/PA from OBA and SLG, then convert it to R/O by dividing by (1 - OBA). Instead of doing a regression to try to incorporate the value of OBA, you are better off to use OBA directly for that purpose.

So it is in fact more accurate to estimate R/PA from OPS than it is to estimate R/O. However, if you agree with the premise that individual productivity should be measured in terms of runs/out, and you use OPS or OPS+ as your rate stat of choice, you are in essence locking yourself in to considering the less accurate R/O relationships.

Sunday, January 20, 2008

Units and Comparisons

In writing some other stuff, I’ve noticed that I’ve been referencing this topic, and so I figured I should just write about it in isolation so that I don’t have to go off on a tangent elsewhere.

This kind of goes back to Bill James’ article in the 1987 Baseball Abstract about “meaningful and meaningless statistics”. When looking at a baseball statistic (which I’m using to mean a category like “Triples”, not a single statistic like “Curtis Granderson had 21 triples in 2007”), I ask myself a few questions. These questions don’t answer how worthwhile it is to know, but they are very useful in considering derived statistics:

1) What are the units of the statistic? Are they actual units or estimated units?

Consider a fairly mundane counting statistic, the balk. The unit of a balk is clearly “balks”, and since the category is simply a count, they are actual units.

Batting average is measured in units of “hits per time at bat”. Again, they are actual units, although the at bat itself is a weird, kind of artificial subcategory of plate appearances.

OPS is measured in units of “total bases per at bat plus times on base per plate appearance”. Since we have two different denominators, there’s not a clear unit here as there is in the two components taken separately. The unit total bases per at bat plus times on base per plate appearance has no clear meaning; people use the stat as an approximation of overall offensive ability, but overall offensive ability is not a unit either. OPS has no units.

Runs created is measured in units of “estimated runs”. While both RC and OPS are estimates, the distinction between these will be explained below.

Questions two and three apply primarily to derived statistics, not from counts of events.

2) If the derived statistic is measured in an estimated unit, is it one that is fundamental to our understanding of baseball?

By fundamental, I mean units of things that really matter in terms of winning baseball games. If the stat is expressed in estimated runs or wins, then it is fundamental, although I would consider other things to be fundamental.

For example, On Base Average is a very fundamental thing to know; the rate of reaching base. Of course, OBA is not really an estimated unit, but an actual count of things.

I also consider any sort of event frequency with a sensible denominator to be fundamental...walks/PA, homers/PA, hits/balls in play, etc. Of course, some of these are more telling than others (catcher’s interference/PA is not particularly important to know), but they all are very straightforward, basic pieces of information.

Slugging Average is a more interesting case; clearly “bases gained by the batter on hits” is a factual count. However, bases gained by the batter on hits is not critical to understanding baseball, like the rate of reaching base is. If it were “bases gained on hits by batter and baserunners”, then it would be a bit more telling, either on the team level or as an estimated unit on the individual level. So I’ll leave that one up there as one to be decided on. It’s sort of like if you took (balks + wild pitches)/inning.

OPS fails this test, since it’s not measured in terms of anything. That does not mean that OPS cannot be transformed by mathematical operation into a fundamental estimated unit, like runs, but on its own, the units are meaningless.

Win Shares is measured in wins, except the wins are multiplied by three. I consider that to be fundamental. If you want to be a stickler and demand that Win Shares divided by three to consider it a fundamental estimated unit, that’s okay too. The reason I don’t draw a distinction is that the transformation is scalar and straightforward.

3) Can two players (or teams, etc.) be compared using this statistic by the difference between their figures? By the ratio? Both? Neither?

What I am getting at here is does the difference or the ratio have meaning, other than just to tell us which is better. For instance, an OPS of 1000 can be compared to an OPS of 800, and seeing that the one player is +200 points or has a 1.2 ratio, we can see that the 1000 OPS is superior. But the +200 points or the 1.2 ratio don’t have any meaning other than facilitating the comparison.

For an example of a statistic that can be compared by difference and ratio, take runs created per game. 5 RG is two more runs per game than 3 RG, or it’s 67% more runs. Either way, the numeric result of the comparison is expressed in a meaningful unit. There are many stats that would fall into this category: Winning Percentage, On Base Average, Wins, Losses, …, Balks.

However, there are some derived statistics for which only one of the operations produces a meaningful result. Take Runs Above Average for example. If I tell you that one player is +10 RAA and the another is +1, then we have a ratio of 10 and a difference of 9. The difference of nine tells us that Player A contributed nine more runs beyond an average player than Player B did, which is valuable. But the ratio of 10 just obfuscates things, unless you take the position that RAA measures value, and thus Player A is ten times more valuable. Even if one takes that view, the ratio gives a much cloudier picture of the disparity in value than does the difference.

Statistics with meaningful ratios but meaningless differences are harder to come by, but one example is ERA+. ERA+ inverts the usual format of a relative statistic (X/LgX) to LgX/X, in order to make a figure above 100 desirable as it is for OPS+, or Relative Batting Average, or any number of other such stats.

This seems innocuous enough at first glance, but it causes some problems, and you need to be careful when averaging it, as Tango Tiger has shown. Suppose that you have a pitcher who works exactly 200 innings in consecutive seasons in leagues with an ERA of 4.50. In the first season, our pitcher’s ERA is 3.00, and thus his ERA+ is 1.50. In the second season, his ERA jumps to 4.00, and his ERA+ comes in at 1.125. Since he worked the same number of innings each year, we can just average his ERAs together and find that he has compiled a 3.50, which is a 1.286 ERA+. However, if we average his ERA+s, we get 1.313.

The reason this ends up happening is that when you invert the calculation, earned runs, rather than innings, become the denominator quantity. So in order to average the two seasons, you must weight by earned runs (and indeed (4*1.125 + 3*1.5)/(4+3) = 1.286).

For the same reason, the difference between the two means nothing. 1.5-1.125 = .375. What does .375 represent? If we take it times the league ERA of 4.5, we would expect to get the difference between the two ERAs (1), but instead you get 1.69.

Suppose that we instead consider ERA/LgERA. The seasonal figures are now .667 and .889, and we know the total to be 3.5/4.5 = .778, and the average of .667 and .889 is indeed .778. Now the difference between the two, multiplied by the common league ERA is (.889-.667)*4.5 = 1.

The ratio between the two is .889/.667 = 1.333; the ratio between the ERA+s is 1.50/1.125 = 1.333. You can see that the ERA+ ratio is meaningful, but the difference is not, and that’s something you should always keep in mind when working with ERA+ over the course of a pitcher’s career. So while we may have become accustomed to ERA+, its reciprocal is easier to work with and is meaningful in ratio and differential comparisons.

Then there are the statistics for which neither the difference nor the ratio has any intrinsic meaning. Generally speaking, these are the derived stats that I cannot stand, and wish that their inventors and figurers would convert them to a different format. Examples include OPS (since it is unitless to begin with), EQA, and Offensive Winning Percentage. I’ll examine the case of OW% here. OW% starts with a statistic, Adjusted RG, which is meaningful by both difference and ratio, and converts it into a format where it is meaningless by both, at least for application to individual players.

Assuming a pythagorean exponent of 2, OW% = RG^2/(RG^2 + Lg(R/G)^2), or ARG^2/(ARG^2 + 1). Suppose we have a hitter with an ARG of 110, and another with an ARG of 120. Player A has created 110% of the league average runs per out; Player B 120%. The ratio 120/110 is meaningful; it tells us that Player B created 9% more runs per out than did Player A. The difference 1.2-1.1 is meaningful as well. If we multiply by the league average R/G (say .18), we will find that player B was created .018 runs/out more than Player A.

When we convert to OW%, Player A is now at .548 and Player B is at .590. The ratio between them is now .590/.548 = 1.078. In what sense was Player B 7.8% more productive, more valuable, more whatever than Player A? The answer is in no sense that reflects on their actual status as individual members of a ballclub. It is true that a whole team that hit like Player B would be expected to win 7.8% more games than Player A. However, this does not translate directly into any statement of their actual value as individual members of a team.

The difference is just an unintelligible. OW% is okay for the thought exercise aspect of “how good would a whole team of this guy be”, but when it comes to actually measuring the value of a player to his team in a meaningful way, it fails. All of this is not to say that non-linear relationships have no place in evaluating players, but if you’re going to use them, you need to be sure that you model reality and not an unrealistic scenario. For example, you could ask “What would the team’s W% be if it was made of eight average players and Player X” and use the pythagorean formula to make an estimate. The relationship between two player’s OW%s figured that way would not be the same as the relationship between their ARG, but one could argue that it would be a truer reflection of their value. OW% cannot make that claim, and thus the non-linearity just serves to obfuscate relationships between players.

To wrap this rambling atrocity up, the most useful statistics tend to have positive answers to all three questions: they are denominated in some sort of unit, that unit is fundamentally important, and the ratio or difference between players or teams express the relationship between them in a meaningful way.