Modeling Whiffs and GBs Using Velo and Movement: A Reprise

Pitch modeling isn’t anything particularly unique or groundbreaking. It’s the kind of thing Harry Pavlidis and Jonathan Judge (of Baseball Prospectus) and our once-editor Eno Sarris (now of The Athletic) have investigated for years. I won’t claim to break new ground here. I’m just a nerd who likes testing hypotheses for himself.

Last year, I used velocity and movement, courtesy of PITCHf/x, to model swinging strike and ground ball rates for pitchers. That post was not my best work (easy to say in hindsight), primarily because of limitations with the data. The data, from Baseball Prospectus, was aggregated, such that I couldn’t isolate any single pitch thrown by a pitcher. The advent of Statcast has enabled us to do exactly that, providing publicly accessible hyper-granular pitch-level data and changing how the public sphere of sabermetricians nerd out.

Something I have wanted to do for a long time is refresh my previously-linked analysis, but with (1) Statcast data and (2) a different modeling approach — namely, the use of a probit model rather than a multiple regression model. For most of you, this means nothing. It’s gibberish. I don’t intend to wade too deeply into the weeds of the modeling, lest I disorient or alienate. Mostly, I just want to communicate I think it’s an exciting and different way to answer the everlasting question: how does a pitch’s velocity, movement, and spin rate affect its outcome?

A typical regression model specifies a dependent variable (y) that is an unbounded integer — any number from negative infinity to infinity (although it can have bounds, but that’s not the point). Conversely, a probit’s dependent variable is binary, where 1 equals one outcome and 0 equals another, like a true/false question or an on/off switch. The outcome, rather than being a nominal value, is, instead, a probability. What’s the probability that, when a hitter swings, a pitch will induce a whiff (1) or contact (0) based on its velocity, movement, and spin rate? What’s the probability that, when a hitter makes contact, it will be a ground ball (1) or something else (0)?

Not coincidentally, these are two questions I intend to answer for two very specific pitches thrown by two very specific pitchers. Patrick Brennan, of Beyond the Box Score, brought to our (or at least my) attention how Masahiro Tanaka‘s splitter has forsaken him this year. By Statcast’s expected wOBA (xwOBA), its outcomes have been awful, no doubt fueled by a greatly depreciated swinging strike rate (SwStr%). Similarly, I noticed some of Carlos Carrasco’s struggles stemmed from the ineffectiveness of his change-up, a pitch that typically logs a 70%-ish ground ball rate (GB%) but currently sits at a meager 46%. These two pitches are my test cases.

(This is where we get into the messy statistical stuff. Feel free to skip to the results.)

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. In case you didn't read all that, here's the short version. Membership includes:
✓Ad-free browsing
✓Unlimited FanGraphs & RotoGraphs articles
✓Historical & platoon projections
✓Leaderboard & player-page stat heatmaps
✓One-click data exports
✓Customizable player-page dashboards
✓Dark & Classic site modes
✓Weekly Members-only mailbag
✓FanGraphs Walk-Off, your year in review
✓Optional homepage photo removal
✓Gift articles to non-members

Tanaka’s Splitter’s Whiffs per Swing (Whf/Sw)

In looking at Tanaka’s splitter, I wanted to determine the probability of a swinging strike on every swing Tanaka has induced from the start of 2017 until now. In isolating just the swings, I remove the need to control for other exogenous variables that might influence the timing of a swing, such as ball-strike count.

I specified the model similarly to how Matt Swartz specified the regression model that produced SIERA once upon a time. I took the primary four independent variables — velocity, horizontal movement, vertical movement, and spin rate — and interacted them with one another. The idea behind this is none of the variables exist in a vacuum; for example, velocity means nothing without some kind of movement, and that interaction produces some kind of effect (or so one might hypothesize). These interactions underpin important relationships between variables, relationships that the model can then capture and characterize. Additionally, I included squared terms in case the relationship between Whf/Sw and velocity (or movement or spin rate) isn’t linear, which it surely isn’t.

Unfortunately, such a complicated specification makes it difficult to disentangle the exact effects of each variable (or pair of interacted variables). Thus, for the sake of demonstration, I specified a simpler model that used only each independent variable in isolation — that is, velocity, movement, and spin rate by themselves, no interactions, no nothin’. The estimated coefficients and Wald Chi-Square values (the latter of which measure the robustness of the relationship of the variables within the model) are shown below:

Analysis of Maximum Likelihood Estimates
Parameter Estimate Standard Error Wald Chi-Square Pr > ChiSq
Intercept -5.0157 2.7979 3.2136 0.0730
H -0.2657 0.1598 2.7627 0.0965
V -0.5157 0.1435 12.9126 0.0003
velo 0.0558 0.0325 2.9524 0.0857
rpm -0.0003 0.0002 1.5906 0.2072

The color-coding above indicates statistical significance. For Tanaka’s splitter, vertical movement is, by far, the strongest correlate to the probability of a swing and miss. Horizontal movement and velocity are important, too, but less so, and spin rate bears no meaningful relationship (by itself, at least). Alas, in case you’re wondering what’s “most important” for Tanaka’s splitter’s success: it’s vertical movement.

The actual model, though, is significantly more complicated, the results of which I won’t provide here (but will share with those interested; feel free to comment below). I can confirm the model produces a strong fit, producing a p-value (0.0004) that resoundingly rejects the null hypothesis, which is good! That’s good.

The results…

Splitter Whf/Sw
Year Actual Predicted Diff
2017 37.1% 35.2% 1.9%
2018 34.0% 30.4% 3.6%
2019 15.0% 26.9% -11.9%

The model results suggest that, purely on the basis of velocity, movement, and spin rate, Tanaka’s splitter hasn’t been as efficacious in inducing whiffs on swings as in prior years. However, it certainly seems the pitch has underperformed, with its 15.0% whiff/swing falling well short of its predicted value of 26.9%.

Now, because the model lacks a variable to control for pitch location (i.e., command), it’s possible Tanaka has been grooving his splitter this year. Brooks Baseball might argue as much, but that argument would be flimsy at best (Tanaka is grooving his splitter more than ever but it’s still well above-average relative to all else).

Still, even if Tanaka were grooving his splitter, realistically it doesn’t explain the full difference between his actual and predicted Whf/Sw. It stands to reason the pitch will improve as the season wears on, which makes him a positive reversion candidate in strikeout rate (K%) and, thus, in FIP/xFIP/SIERA.

Carrasco’s Change-up’s GB%

Much of Tanaka’s section can be recycled here. For Carrasco, I wanted to estimate the probability of a ground ball specifically when his change-up induces contact from a hitter. The “most important” elements of Carrasco’s change-up in such instances is velocity followed by horizontal movement. Vertical movement and spin rate play a negligible role.

Analysis of Maximum Likelihood Estimates
Parameter Estimate Standard Error Wald Chi-Square Pr > ChiSq
Intercept -20.6324 5.6820 13.1856 0.0003
H -0.6271 0.3921 2.5579 0.1097
V -0.1970 0.3062 0.4139 0.5200
velo 0.2358 0.0648 13.2474 0.0003
rpm -0.0002 0.0005 0.1143 0.7353

The results…

Change-up GB%
Year Actual Predicted Diff
2017 73.6% 70.4% 3.2%
2018 69.3% 69.4% -0.1%
2019 45.9% 62.2% -16.3%

The model suggests that, like Tanaka’s splitter, Carrasco’s change-up hasn’t quite been up to snuff in 2019 (which might be fully explained by his recently announced blood condition… ugh, get well soon, Cookie). Still, its predicted GB% greatly exceeds its actual GB%. Like Tanaka, this could be a matter of location and command; Carrasco is grooving his change-up more than ever, but, again, everything is relative (it’s still his least-grooved pitch). Thus, like Tanaka, I think we can reasonably expect some positive movement in the GB% column for Carrasco once he returns. The narrative might ultimately be crafted around his health concerns, and that’s fine. It’s likely they’ve greatly affected him. But, all else equal, the physical properties of his change-up suggest the pitch should have been incurring better outcomes from the get-go this year.

Conclusions

I intend for this to be the first of many dives into this kind of pitch modeling, with subsequent posts looking at single pitch types categories across the league (for example, all pitchers who throw sliders) with emphases on different metrics of success, beyond Whf/Sw and GB%.

Moreover, I think this kind of modeling might yield a pitch’s “true talent level” much sooner than its outcomes, assuming its velocity, movement, and spin rate readings stabilize more quickly. Thus, we can look at the physical properties of a pitch and determine, well in advance, what its season-long outcomes might be. Conduct an identical analysis for every pitch in a player’s arsenal and you can potentially understand how that player might perform rest-of-season.

Maybe. Who knows? I don’t. But I’m dreamin’, excited to keep digging in and learning more.

Lastly, this post was a little denser than most are (and even I am) accustomed to. Please don’t hesitate to ask questions of clarification. Also, if you are a superior econometrician, please holler at your boy and suggest improvements and/or correct his mistakes!





Two-time FSWA award winner, including 2018 Baseball Writer of the Year, and 8-time award finalist. Featured in Lindy's magazine (2018, 2019), Rotowire magazine (2021), and Baseball Prospectus (2022, 2023, 2024, 2025). Biased toward a nicely rolled baseball pant.

10 Comments
Oldest
Newest Most Voted
Jetsy Extrano
7 years ago

“It stands to reason the pitch will improve as the season wears on”

This would stand to reason if we believed he’s having bad luck, throwing a splitter that should get 27% whiffs but getting some bad weighted-coin flips.

But that’s extremely unlikely by a binomial estimate. There’s something non-luck going on, and we don’t know what it is, so why does it stand to reason he’ll fix it?

Purple Mays HazeMember since 2017
7 years ago

I assume you’ve previously neglected the overall movement component (ie the hypotenuse in the Pythagorean) as being non-significant? Is that “true” that if a pitch has a ‘horizontal’ movement of X, that it doesn’t matter how large or small the vertical component of the movement is?

Purple Mays HazeMember since 2017
7 years ago

I guess I’m worried that intuitively there “should” be differences between an equal velo slider that goes -4 in the H direction and -3 in the V direction as compared to a (-4,-1) or a (-4,-9) – and similarly, as compared to a (-9,-3) and a (0,-3).
But, that being said, a -3,-4 pitch (ie with a “5” hypotenuse) is likely different from a (0,-5).
But yeah, maybe it just adds unnecessary complexity…

Obviously too – the next step would be to see how the whiff/swing of a specific pitch changes based on what the previous pitch was (ie sequencing) and what the ‘outcome’ of that previous pitch was…Looking forward to reading about that in part 2 :).
ps Great work!
pps no threats here!

shaned23Member since 2018
7 years ago

Would recommend using logit to validate your probit findings. Logit models are generally preferred due to increased flexibility and less required assumptions (probit models require normality of error terms). Logit models are more commonly used due to that and being more easy to interpret. This is really cool work though. Very interested to get into this sort of thing next offseason

Uncle SpikeMember since 2020
7 years ago

Fascinating work, Alex! I’m no econometrician but i found this very interesting and am looking forward to seeing the results of your continued work.

Slappytheclown
7 years ago

I’m more of a user of statistical analysis than a statistician myself, but this is good work and you are on the right path.

In regards to command, much like in financial modeling I think you need to consider that another ‘factor’ in the equation. The only problem is, you need to determine who to accurately define that factor to incorporate it into your model, which should then lead to better results. It would be some sort of task, but could you break the strike zone into zones like we often see and break those zones into overall …expected SLG or ISO based on that zone type or just a score? So dead center (meatball) would have a score of 1, way out of the zone something like .5 (because it’s a ‘bad’ pitch but not a meatball), the corners are .25 and just outside the corners .35 of something. This way you could get a ‘command’ score in one easy number to use. Generally speaking in the example above, the lower the score the better the ‘command’.

Good luck, and again feel free to bash me – it’s been 20+ years since some of my more details calc and stats notes. You did a good job explaining it though!! We need more of this.