Fixing xFIP, Pt. 2: SP/RP Splits
Last week, I recommended an improvement for expected fielding independent pitching (xFIP) without dismantling the original FIP framework upon which it was built. FIP describes the relationship between ERA and strikeouts, walks, and home runs allowed; xFIP does the same but attempts to remove the luck component from home runs by multiplying the number of fly balls a pitcher allows by the league-average rate of home runs to fly balls (HR/FB) — the rationale being HR/FB is notoriously fickle to project year to year.
The recommendation: change HR/FB to include line drives (LDs) and exclude infield fly balls (IFFBs, aka pop-ups). It’s worth noting our dark overlord David Appelman once explained how removing pop-ups from aggregate fly balls insignificantly affects xFIP. Additionally, less than 1% of line drives result in home runs. The recommendation, then, seems like the merging of two separate but equally fruitless endeavors, given the facts.
Yet changing the HR/FB component in xFIP to be “HR/(oFB + LD)” substantially improved the metric’s correlation with same-year ERA. Adjusted r2, which measure the strength of relationship from 0 to 1, increased from 0.42 to 0.55 using Statcast data (0.44 to 0.53 using FanGraphs data). I hypothesize that, when added to fly balls, line drives (despite resulting in very few home runs) give a more holistic indication of the average contact quality and launch angle a pitcher allows.
Today’s recommendation: account for start/relief splits.
Although I thought of this independently, the idea itself is far from an original one. In fact, when Matt Swartz developed SIERA, he explicitly included a variable for the percentage of innings pitched as a starter (SP%)
It’s no accident Swartz did this. Pitcher performance behaves differently in start and relief roles. Consider this summary of starter and reliever performance the last decade:
| Split | ERA | FIP | xFIP | HR/FB |
|---|---|---|---|---|
| SP | 4.18 | 4.14 | 4.09 | 11.4% |
| RP | 3.85 | 3.92 | 4.01 | 10.5% |
In aggregate, FIP and xFIP should equal ERA. The differences between ERA and FIP/xFIP above imply either or both of the following:
- FIP fails to distinguish what appear to be distinct impacts related to strikeouts, walks, and home runs for each split; and
- Because starter FIP exceeds starter xFIP, it stands to reason xFIP underestimates HR/FB for starters (and vice versa for relievers) — which is confirmed by the table above.
Before diving in farther, I was curious to know if higher HR/FB rates for starters are the product of penalties borne from second and third times through the order (TTO). While there are distinctly defined penalties per TTO, starters still exhibited higher HR/FB rates no matter the scenario…:
| TTO | ERA | FIP | xFIP | HR/FB |
|---|---|---|---|---|
| 1st | 3.40 | 3.86 | 3.88 | 11.0% |
| 2nd | 4.17 | 4.16 | 4.10 | 11.5% |
| 3rd-4th | 5.23 | 4.48 | 4.36 | 11.8% |
… reinforcing the notion that HR/FB, quite simply, behaves fundamentally differently for relievers.
There are a couple of potential approaches for accommodating this difference, one of which being the creation of separate FIP (and xFIP) equations for starters and relievers. This is OK in theory but becomes understandably messy (if you’re calculating by hand, at least) for pitchers in hybrid roles. A computer could quickly compute an average FIP value weighted by the innings thrown as a starter and in relief, but the idea of doing so still seems disagreeable to me.
Instead, I opted for Swartz’s approach: add a variable that calculates the percentage of innings pitched as a starter (SP%). Technically, this compromises the integrity of FIP, arguably more so than a weighted-average FIP, because it adds an entirely new variable. However, this new variable acts more like a constant term than anything else, given most pitchers (especially fantasy-relevant ones) pitch exclusively in the rotation or the bullpen.
Using FanGraphs data for all pitchers who threw at least 60 innings in a season from 2017-18 (n = 547), I specified six regressions — two for FIP, four for xFIP:
- FIP
- The original equation
- The original equation, plus SP%
- xFIP
- The original equation
- The original equation, plus SP%
- The original equation, but with (oFB + LD) instead of FB
- The original equation, plus SP%, but with (oFB + LD) instead of FB
The adjusted r2 values are summarized below. There exhibits a small improvement for FIP and more substantial improvements for xFIP:
| Metric | Original | SP% | oFB + LD | Both |
|---|---|---|---|---|
| FIP | 0.66 | 0.67 | – | – |
| xFIP | 0.46 | 0.50 | 0.56 | 0.58 |
Despite a small increase in the goodness of fit for FIP, the SP% variable itself appears to be a statistically significant addition to the model, with a coefficient of 0.29. That means, if given two pitchers — one a full-time starter, the other a full-time reliever — with perfectly identical rates of strikeouts, walks and hits by pitch, and home runs allowed per inning, you can expect the starter to have an ERA roughly three-tenths of a run higher than the reliever. In other words: FIP very slightly overestimates the talent of starting pitchers (and vice versa for relievers).
For xFIP, last week’s recommendation (to include line drives and exclude pop-ups) was more fruitful (adjusted r2 = 0.56) than today’s recommendation (0.50). However, both produce visible improvements in xFIP’s correlation with same-year ERA, with a combination of both recommendations producing the best goodness of fit (0.58). Using the same hypothetical as before, you could expect a starter’s ERA to be more than half a run higher than a reliever’s ERA. Including the recommended change to HR/FB, the difference falls to something closer to four-tenths of a run (because more weight is attributed to the new HR/(oFB + LD) variable).
All told, the composition of this recommendation — to include a SP% variable in xFIP — is not necessarily the best solution to accounting for differences in starter and reliever performance. It very well may be that a weighted-average approach, such that there are two separate FIP equations for starters and relievers, is the best solution. Doing so would produce different coefficients for every variable in the equation. Intuitively, this makes the most sense (to me, at least). For example, if it’s true that a walk or hit by pitch is less harmful to a reliever than a starter, then each model’s unique coefficients would reflect this.
Ultimately, this is less about what we should do with FIP or xFIP as it is how we should interpret FIP or xFIP. Honestly, I could have ended this post after the first table once I made it clear that starter and reliever performance is not the same. It helps to show with rigor that it’s true, but more than anything, just keep in mind that FIP slightly overestimates starter talent and underestimates reliever talent, all else equal.
As an aside: one can argue that if FIP is slightly off in its descriptions of starter and reliever talent, then FIP-based wins above replacement (WAR) might be mischaracterizing pitcher value (in favor of starters, who should have higher FIPs and, thus, lower WARs).
Re your last point: Couldn’t one also argue that that should be baked into the replacement level of a reliever or starting pitcher, at least to some extent, thereby offsetting any ERA-FIP differences increasing starter value?
Yeah, I think you’d be correct. The only thing is I’m not sure WAR actually does this; having looked at the WAR glossary entry it seems like it’s calculated relative to the league-average FIP for everyone, with a leverage adjustment for relievers. So, I dunno. (Regardless, we’re probably talking mere decimal points of WAR either way…)
Yeah I believe it’s baked into the bbref version but I’m not sure about this one. Either way, I would assume you’re right that it’s pretty much irrelevant to gauging player value.
Alex, do you think looking at a team’s bullpen FIP is the best way to quickly evaluate it and predict future performance? Or should I be using xFIP? I’m building a sports betting model in which starting pitcher projected DFS score + team bullpen FIP rank (higher the rank the better) + team wRC+ rank (higher the rank the better)= A team’s total score. Divide that by the total score between the two teams and you have a % chance of a team winning. It’s been remarkably close to the implied odds of gambling lines but I’m wondering if I can improve upon those two stats.
I would say maybe xFIP or SIERA, but no matter what, you’re aiming at a moving target.
Def do not use ranks in any predictive calculation.
For predicting bullpen performance, RoS projections (Steamer or the BAT) will be better than FIP or xFIP at this point of the season.
“keep in mind that FIP slightly overestimates starter talent and underestimates reliever talent”
Replace “talent” with “expected ERA,” and I would agree. But in terms of actual context-neutral talent, xFIP, FIP and ERA all overestimate RP talent (vs. same-stat SPs) bc they do not adjust for how much easier it is to pitch in short outings.
Sure, yes, performance, not talent
Wouldn’t adjusting by batters faced per game accomplish what you want without the need to differentiate between roles?
I’m not sure. I don’t think so? How so?
I would tend to agree, but eventually you go down the slope of wanting to adjust for everything: quality/handedness of batters, weather, park, days rest, etc.
I think the appeal of xFIP is its simplicity. It has never been a good predictor of future performance for the reasons above. Instead of trying to tweak xFIP to account for only a handful of the relevant variables, I would start fresh and try to create the most accurate predictor possible. I.e., see if the RoS Steamer/BAT projections can be improved.
Yes, full agree re: “the appeal of xFIP is its simplicity.” It’s quite powerful given its self-imposed limitations. This exercise never intended to reinvent the wheel re: regressed performance, just to improve an existing metric (one with lots of structural inertia!).
Also, @BKhipsterball, when you said “adjust by batters,” I thought you meant strictly the number of hitters, not the quality. My bad!
“In aggregate, FIP and xFIP should equal ERA. The differences between ERA and FIP/xFIP above imply either or both of the following:”
I think you’re missing the most obvious reasons, Inherited Runners and Partial Innings.
Inherited runners are charged to the SP, who doesn’t have a chance to lower their FIP with an out. They also simultaneously allow RPs to have “cost-free” outs via CSs, DPs, forceouts, etc.
Partial innings are also a large advantage for RPs. A leadoff double to an SP has three outs to make it to home. Whereas as a reliever who comes in with a man on second with 2 outs or even better, bases empty only needs to get one out to have an unblemished ERA.
I think these two reasons more than explain the small FIP-ERA differential between Starters and Relievers.
Yes! Came down here to post this. Hopefully, Chamberlain will see it. Generally speaking, Fangraphs authors tend to check comments for an hour and then forget about it.
YOU HOLD YOUR TONGUE, BJOAK.
I don’t disagree about inherited runners (I wish there were good data for it), but there is also a clear difference in how home runs — which are agnostic to number of baserunners or number of outs — behave differently for starters and relievers. So I don’t think inherited runners and/or partial innings wholly displaces other elements of performance.
Plus, xFIP is explicitly not accounting for full park factors. So the Rockies’ team ERA will always be higher than its team xFIP, and vice versa for the Giants.
The entire premise of using xFIP to predict anything in terms of actual stats is flawed. Not sure why the author wants to enhance a metric to make it slightly better at something it was never designed to do.