Updating My Hitter xK% Metric

A whopping eight years ago, I shared the hitter xK% metric I developed using a couple of our plate discipline metrics. It was quite good, using only three variables, but still had a strong R-squared of 0.81. Since then, I haven’t discussed it all that much, but still use it to help formulate my Pod Projections. However, I have actually been using an updated version that I had never shared and it’s even better. The comments on my recent xwOBA articles inspired me to finally reveal the latest and greatest version of the hitter xK% metric.

If you recall, I’ve shared several versions of my pitcher xK%, with this one being the latest. It then dawned on me that perhaps I should try using the same variables for the hitter version. Sure enough, it worked, leading to an even higher R-squared. Now as I type this, I have come to the realization that I actually updated this pitcher xK% formula as well and haven’t shared it, and the newest hitter xK% uses the same variables as the newest, unshared, version of the pitcher xK%. So let’s just get to the equation and I’ll explain.

My data set included all batter seasons with at least 50 plate appearances from 2014-2018, with a total population of 2,530.

Hitter xK% = -0.65909 + (L/Str * 1.774892871) + (S/Str * 1.989362763) + (F/Str * 1.58423575) + (3-0% * -0.156090822) + (Pit/PA * -0.097239383)

Adjusted R-Squared: 0.941

You Aren't a FanGraphs Member
It looks like you aren't yet a FanGraphs Member (or aren't logged in). We aren't mad, just disappointed.
We get it. You want to read this article. But before we let you get back to it, we'd like to point out a few of the good reasons why you should become a Member.
1. Ad Free viewing! We won't bug you with this ad, or any other.
2. Unlimited articles! Non-Members only get to read 10 free articles a month. Members never get cut off.
3. Dark mode and Classic mode!
4. Custom player page dashboards! Choose the player cards you want, in the order you want them.
5. One-click data exports! Export our projections and leaderboards for your personal projects.
6. Remove the photos on the home page! (Honestly, this doesn't sound so great to us, but some people wanted it, and we like to give our Members what they want.)
7. Even more Steamer projections! We have handedness, percentile, and context neutral projections available for Members only.
8. Get FanGraphs Walk-Off, a customized year end review! Find out exactly how you used FanGraphs this year, and how that compares to other Members. Don't be a victim of FOMO.
9. A weekly mailbag column, exclusively for Members.
10. Help support FanGraphs and our entire staff! Our Members provide us with critical resources to improve the site and deliver new features!
We hope you'll consider a Membership today, for yourself or as a gift! And we realize this has been an awfully long sales pitch, so we've also removed all the other ads in this article. We didn't want to overdo it.

All metrics are from Baseball-Reference.

L/Str — Looking Strike Percentage | Strikes Looking / Total Strikes
S/Str — Swinging Strike Percentage | Strikes Swinging Without Contact / Total Strikes
F/Str — Foul Ball Strike Percentage | Pitches Fouled Off / Total Strikes
3-0% — 3-0 Count Seen Percentage | 3-0 Counts / Plate Appearances
Pit/PA — Pitches Per Plate Appearance | Pitches Seen / Plate Appearances

Can you really get much higher than a 0.941 R-squared? There will always be exceptions and consistent beaters and missers, but this seems to be as slam dunk an equation as it could possibly get.

Like in my original pitcher xK% equation, I am using the three strike type rates as variables, as they perform better split up than overall strike percentage, or just one or two of the trio. I have also added the last two variables, which haven’t been shared in any of my previous equations.

3-0% is important because it accounts for sequencing, which is something that I always knew was missing, but was impossible to factor in with any other variable. If over two plate appearances, a hitter sees four balls and four strikes, the sequencing of those pitches will have a significant effect on the outcomes of those PAs. If those four balls were thrown consecutively during one PA, he’s going to trot to first base. Instead, if those balls and strikes alternated, any outcome is possible. 3-0% might not be a batter skill (I haven’t looked into its YoY correlation), but since xK% is meant to be a backward looking, descriptive metric, and not predictive, it doesn’t matter as much.

Pit/PA is an obvious driver of strikeouts — the more pitches a batter sees, the more opportunities he has to strike out. It has a 0.378 correlation with strikeout rate between 2014 and 2018. Oddly, the variable has a negative coefficient, so in this equation, a higher Pit/PA actually reduces a hitter’s xK%. That doesn’t make any sense to me, so maybe you mathematically smarter readers could help explain. The equation is much better with the metric included though, so I’m not entirely sure what’s going on, but I wanted to keep it in given its high correlation with strikeout rate.

Correlations With K% from 2014-2018
L/Str S/Str F/Str 3-0% Pit/PA
-0.095 0.808 -0.111 -0.137 0.378

It’s not just Pit/PA that features a coefficient opposite its correlation with strikeout rate. L/Str and F/Str both correlate negatively, but have positive coefficients in the equation. I assume it’s the way regression equations are derived and the interaction between all the variables that produces coefficients that aren’t always what you expect.

It’s clear from the correlation table that S/Str has the largest impact on a batter’s strikeout rate. The same is true from the pitcher’s perspective. I’m not sure why it’s so much higher than L/Str, as both strike types could result in strike three, so it probably relates to the types of other skills a batter/pitcher typically owns when they have high/low S/Str vs L/Str marks. In other words, if a hitter has a high S/Str, he likely does other things that correlate with a higher strikeout rate, whereas that’s not the case when a hitter has a high L/Str. That’s just my guess in trying to understand these correlations.





Mike Podhorzer is the founder of ProjectingX IQ, an advanced fantasy baseball analytics platform that transforms projection data and in-season performance signals into actionable intelligence. He is the 2015 Fantasy Sports Writers Association Baseball Writer of the Year and three-time Tout Wars champion. He is the author of the eBook Projecting X 2.0: How to Forecast Baseball Player Performance, which teaches you how to project players yourself. Follow Mike on X@MikePodhorzer and contact him via email.

5 Comments
Oldest
Newest Most Voted
Joe WilkeyMember since 2016
5 years ago

“Oddly, the variable has a negative coefficient, so in this equation, a higher Pit/PA actually reduces a hitter’s xK%.”

I would think it’s likely because, in theory, once you get past 6 pitches in an PA, it means you’re fouling pitches off by definition, and if you get to two strikes before that, you’re extending the AB by either fouling off pitches or taking balls. Over your defined sample, a full 51.3% of PA had a two strike count, with batters seeing an average of 2.172 pitches after they got to 2 strikes. The average plate appearance only had 3.878 pitches for the same sample. So, if more than half of your PAs have two strikes, which also means a minimum of two pitches, once you start extending the PA, it means you either have a good eye, are good at fouling off strikes, or both.

Joe WilkeyMember since 2016
5 years ago
Reply to  Joe Wilkey

Also, I have an xK% equation for hitters based on data from 2016-2020 that has an r^2 of .78 for hitters with 50 PA this year, and it’s only based on 22.3% of the pitches the average batter sees. My pitcher one has a .72 r^2 for pitchers with at least 50 batters faced, based on the same pitches. BB% is tougher, my r^2s are only .64 and .53 for hitters and pitchers respectively, and it’s based on 53.6% of pitches.

HappyFunBallMember since 2019
5 years ago

My guess, and it’s only a guess, is that S/Str has a larger impact than L/Str because of pitch location.

Higher S/Str could mean that a batter is swinging at bad pitches or that they just aren’t all that good at making contact with good pitches. Both of those things clearly lead to a high strikeout rate, regardless of the pitcher’s own strike earning abilities or the random number generator standing behind the catcher.

Whereas lots of L/Str are likely to be pitches on the edge of the strike zone. That matters, of course, because some of those are certainly strikes. But there’s also a lot more noise if whether or not they really are and what it says about the batter’s ability to not strike out. If you were to refine things further such that you had terms for L/Str (middle) and L/Str (edge), I bet the former would be far more impactful on K% than the latter.

YakWish
5 years ago

The most likely explanation for what you’re seeing with correlations not matching coefficients is that some of your variables are correlated with each other. I think elkabong’s explanation makes sense here – F/Str and Pit/PA are two correlated variables. Also, there is going to be some kind of relationship between F/Str, L/Str and S/Str by definition (if you foul off a lot of pitches, that leaves fewer possible called strikes). The perfectionist in me would calculate variance inflation factors for all your variables at this point. Correlated variables can artificially shrink p-values, which might cause you to include a variable that isn’t actually important.

AnonMember since 2020
5 years ago

Have an idea for a column. Obviously we can see which pitchers have been hurt the most by the sticky ban was announced on June 3rd by looking at spin rates and there have been a few columns with that. How about one for hitters? Obviously you can look at something like wOBA but that can fluctuate based on a bunch of things. How about one looking at whose contact rates have soared with the sticky ban? Holding Gary Sanchez and I would bet anything he is among the leaders in that. His recent hot streak starts almost exactly when the enforcement ban was announced on June 3rd. He isn’t really doing anything different in terms of chase rate or in-zone swing rate. But his contact rate, which has been dropping over the last few years, spiked up a LOT.