Nearly three years ago, I developed and published the original batter xHR/FB rate equation. While I used it during the season to analyze players, it was unfortunately behind the FG+ pay wall and shrouded in mystery. Then almost exactly two years ago, I unmasked the equation and shared it with the entire world. The equation used three components compiled by Jeff Zimmerman and did a fairly solid job of estimating what a hitter’s HR/FB rate should have been (adjusted R-squared of 0.649). Sadly, the data fueling the equation is no longer available, so naturally I decided to create a new equation. A Statcast charged one.
In my mind, the probability that a struck ball ends up over the wall depends on several factors — the vertical launch angle (the type of batted ball, e.g. a grounder or fly ball), the horizontal angle (where on the field the ball is hit to, e.g. left field), the exit velocity (how hard the ball is hit), and park factors (a ball hit with the same variables at Coors Field will travel further than one at Yankee Stadium).
The old xHR/FB rate equation included batted ball distance, which was more a result than an underlying skill (essentially the result of the combination of exit velocity and vertical launch angle), horizontal angle, and the standard deviation of distance, which helped us differentiate between hitters who hit every ball 300 feet (a great average distance, but a mark that would lead to zero homers), and hitters that alternated between 200 footers and 400 foot bombs.
The bad news — standard deviation of distance can no longer be included in the equation.
The good news — we don’t need distance at all or the standard deviation of it, because we now have access to the underlying skill driving the distance.
The vertical launch angle and exit velocity are accessible thanks to Statcast and the wonderful Baseball Savant. But wait, there’s more! Last September, Statcast introduced a new metric that was added to the Savant leaderboards called Barrels, which in the simplest terms, are struck balls that have a combination of vertical launch angle and exit velocity that on average result in a batting average of at least .500 and slugging percentage of at least 1.500.
Why is this important? Because you can’t just look at a hitter’s average vertical launch angle and make an insightful conclusion about the types of balls he’s hitting. Is a higher average angle better, a lower one, or somewhere in the middle? The answer is no angle by itself is better. It requires more context. And that context is exit velocity.
What Barrels does is create a counting stat for the combination of the two most relevant underlying skills and makes developing a strong equation possible. Knowing just the average vertical launch angle simply isn’t enough, as you would need to pair that with the exit velocity during each batted ball event. Essentially, create an xHR/FB rate for every single event for every player, and that doesn’t sound fun, or easy.
So Barrels takes care of the vertical launch angle and exit velocity. But rather than use the counting stat version, Brls/BBE (Barrels per batted ball event, also on the Baseball Savant Statcast leaderboard) was the ratio metric that suited my needs. Next, I also needed horizontal angle. Problem solved, thanks to the new FG Splits Leaderboard (which is seriously the best new site addition since I started writing here in 2011). Pull% and Oppo% on fly balls does the trick. While it’s not as exact as the horizontal angle I was sent by Jeff Zimmerman, it’s good enough.
My population data set consisted of 883 player seasons. Obviously, a larger data set would have been better, but hey, this is all the Statcast data we have! Let’s start with some correlations:
|Fly Ball Pull%||0.229|
|Fly Ball Oppo%||-0.213|
|Fly Ball Pull% + Fly Ball Oppo%||-0.014|
|Avg FB/LD EV (mph)||0.769|
Wowzers, check those last two correlations! FB/LD Exit Velocity is good, but Brls/BBE is even better! This is precisely the result I was hoping for, as Brls/BBE takes the extra step of incorporating vertical launch angle in with exit velocity. Initially, I wasn’t sure whether to use just Fly Ball Pull% or add Fly Ball Pull% to Fly Ball Oppo% and use Fly Ball Pull% + Fly Ball Oppo%. Ultimately, I decided to use Fly Ball Pull% + Fly Ball Oppo%.
The thinking here is that pulled and opposite field balls are good for HR/FB rate…in this equation. Why? Because we already know the exit velocity and the barreled balls, so now we just want to know if they are hit toward the lines, which are the shortest distances from the plate. Normally, a high Fly Ball Oppo% would likely hamper exit velocity. But already knowing exit velocity, we don’t have to deal with that issue. That would only be the case if trying to project exit velocity itself, which we’re not doing here.
So this beauty of an equation requires just two variables (okay, technically three, since you’re adding two variables together) that are easily accessible from the Baseball Savant Statcast Leaderboard page and FG player pages (click Splits, hover over Batted Balls, click Flies, scroll to the Batted Ball section at the bottom):
xHR/FB = -0.0066 + ([Fly Ball Pull% + Fly Ball Oppo%] * 0.0671) + (Brls/BBE * 1.2479)
Adjusted R-squared = 0.6815 (slightly higher than the original equation!)
But then it dawned on me that man, park factors play an obvious and significant role, there’s got to be a way to incorporate those. So the first thing I did was sum up the difference between HR/FB and xHR/FB for each team. If park factors needed to be tended to, you would expect the teams in the best home run parks would have significantly higher actual HR/FB rates than xHR/FB rates, and vice versa for the teams that play in parks that suppress the long ball. Sure enough, that’s exactly what happened.
The 17 teams that xHR/FB underestimated HR/FB rate averaged a 103.4 home HR park factor. The 13 parks that xHR/FB overestimated HR/FB rate averaged a 96.1 home HR park factor. Bingo!
I then decided on two possible ways to account for home park — simply multiply the xHR/FB rate by the HR park factor found on our Handedness Park Factor page or use the HR park factors as another component in a regression and rerun the equation. Thanks to fellow FG contributor Ryan Pollack, I was able to pull in a batter’s handedness to make these calculations possible. For switch-hitters, I used a 69/31 split, as in, 69% of the lefty HR factor and 31% of the righty.
Unfortunately, the first approach was awful and took things to the extreme. Rockies hitters, as well as hitters in other home run friendly parks, now had xHR/FB rate marks that were way too high! So next up was the new regression model approach.
Drum roll please, the official new Park-Adjusted xHR/FB rate equation..
xHR/FB = -0.0566 + ([Fly Ball Pull% + Fly Ball Oppo%] * 0.0676) + (Brls/BBE * 1.2456) + (Handedness HR Park Factor * 0.000495778)
Adjusted R-squared = 0.6848
Surprised that the park factor adjustment didn’t increase the R-squared even higher? Me too. But it’s definitely better, even if just slightly. And remember the team HR/FB – xHR/FB gap comparison I discussed earlier? The park-adjusted equation in no way completely solved everything, but certainly ensured significantly less bias.
Now the 17 teams underestimated by xHR/FB rate only average a 101.5 home HR park factor (versus a 103.4 without the park factor adjustment), while the 13 teams that xHR/FB rate overestimates HR/FB rate average a 98.6 home HR park factor (versus a 96.1 before). That’s a nice improvement.
Finally, here are the year-over-year correlations for the various relevant metrics:
|Fly Ball Pull%||0.511|
|Fly Ball Oppo%||0.450|
|Fly Ball Pull% + Fly Ball Oppo%||0.017|
|Avg FB/LD EV (mph)||0.790|
It’s kind of odd to see the Fly Ball Pull% and Fly Ball Oppo% correlations where they are, but once you add them together, it becomes totally random. The exit velocity and Brls/BBE are high, which is a good sign. Of course EV is going to be higher as Brls/BBE includes an additional component in vertical launch angle. But seeing that the loss in correlation is relatively minor is pretty swell.
Now for the filet mignon and lobster plate of correlations:
|HR/FB Yr1 to HR/FB Yr 2||0.592|
|xHR/FB Yr1 to HR/FB Yr2||0.617|
|Park Adjusted xHR/FB Yr1 to HR/FB Yr2||0.624|
|xHR/FB Yr1 to xHR/FB Yr2||0.735|
|Park Adjusted xHR/FB Yr1 to Park Adjusted xHR/FB Yr2||0.738|
And there it is. HR/FB in year 1 (2015) had a 0.592 correlation to HR/FB in year 2 (2016). That was the benchmark in which xHR/FB needed to exceed. The xHR/FB in year 1 using the first equation above, which was not park-adjusted, had a 0.617 correlation with HR/FB in year 2. But the park-adjusted version was even better at predicting the following season, coming in at 0.624. Obviously since we have only two seasons of data and 2016 saw hitters go bonkers with homers, these correlations are going to be a bit lower. The last two lines show you that both versions of xHR/FB rate presented in this article correlate with themselves year-over-year pretty well, which is another positive thing.
Moving forward, I will be using the park-adjusted xHR/FB equation and finally, you’ll easily be able to calculate a hitter’s xHR/FB rate yourself, rather than wait for me to publish updates.
Mike Podhorzer is the 2015 Fantasy Sports Writers Association Baseball Writer of the Year. He produces player projections using his own forecasting system and is the author of the eBook Projecting X 2.0: How to Forecast Baseball Player Performance, which teaches you how to project players yourself. His projections helped him win the inaugural 2013 Tout Wars mixed draft league. Follow Mike on Twitter @MikePodhorzer and contact him via email.