Archive for GB

A(n Unnecessary) Sprint Speed Adjustment for xBA

Hi! Disclaimer: In this post I use raw Statcast data to calculate expected batting average (xBA). Evidently the raw data do not include the sprint speed adjustment that the Statcast folks said they made. That adjustment only shows up on player pages and in the search. This explains why it seemed to me an adjustment had not been made! The xBA values on player pages are much closer than the raw values and look similar to what I have presented below, and it explains my confusion herein regarding the matter.

So, this post reinvents the wheel a bit. Perhaps it can serve as a mini-primer or -tutorial for you. At the very least it can serve as further validation of the work that the folks at Statcast completed and instituted a couple of years ago. Just keep in mind that the original post below remains intact, completely unedited.

Thanks for reading!

* * *

It has always seemed rather obvious to me that Statcast’s expected batting average (xBA) failed to properly account for a hitter’s speed (“sprint speed”). It seemed like fast hitters routinely outperformed their xBAs while slower hitters underperformed. In looking at a Statcast-era leaderboard (2015-21) of differentials between actual and expected batting averages on ground balls, obvious names rise to the top: Delino DeShields, Dee Strange-Gordon, Eduardo Núñez, Billy Hamilton, Jose Altuve, Jonathan Villar, Norichika Aoki, Mallex Smith, Jean Segura, Adam Eaton, Starling Marte… the list of players who have historically outperformed their xBAs by the widest margins are (were) all elite speedsters. At the other end of the spectrum, post-prime sluggers: Justin Smoak, Chris Davis, Logan Morrison, Jay Bruce, Kendrys Morales, etc. etc.

I thought this exact phenomenon, which is not a revelation by now, had once nudged the Statcast team to apply a sprint speed adjustment to xBA. Apparently, this happened sometime between the 2018 and 2019 seasons. Here’s the original snippet, which I very lightly edited for clarity:

Read the rest of this entry »


Randy Dobnak, Probable Great American Hero

It’s easy to dismiss Randy Dobnak, to turn him into a punchline. When 99.99% of baseball fans were introduced to Dobby last fall, they learned two things:

  1. When he wasn’t pitching, he worked part-time as a ride-share driver to help pay the bills (an altogether separate indictment of MLB and its broad moral shortcomings), and
  2. He has a handlebar mustache.

That’s just enough, but also plenty, to undercut a grown man’s legitimacy. It’s this very illegitimizing, I hypothesize, that has allowed Dobnak to fly under fantasy radars, even as he demonstrates nonzero aptitude on the mound.

Read the rest of this entry »


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?

Read the rest of this entry »


Pitch Type Performance: 2018 Summary

Shortly after the onset of last season, I dug into pitch-level statistics to see how much swinging strike rate (SwStr%), ground ball rate (GB%), and isolated power (ISO) varied by pitch type. I felt inspired after analyzing Madison Bumgarner before the 2018 season and noticed his fastball, once elite, was utterly broken after his dirt bike accident. (See his 2018 player caption and this July post in which I followed up MadBum’s lack of progress.) I felt encouraged by the praise the post received from readers and fellow analysts alike for the clarity it provided. I’d like to think it helped move the needle, even if only slightly, in terms of how we evaluate pitchers.

I wanted to refresh the guts of that post for the 2018 season with additional metrics. There’s not much else to discuss; this’ll be short and sweet. (I’ll toss in some gratuitous high-level analysis following these tables.)

Notes:

  • All data is courtesy of PITCHf/x via Baseball Prospectus
  • All tables present average rates for starting pitchers only
  • Due to pitch tracking/stringing not being perfectly precise, the numbers below are highly accurate but not completely so and may not align exactly with FanGraphs’ batted ball data (for example, Baseball Info Solution strings far fewer line drives than does PITCHf/x)
  • Click headers to sort!

Batted ball outcomes by pitch:

Read the rest of this entry »


2018 Statcast Park Impacts (Not Quite Factors)

The longer we have Statcast data at our disposal, the more ways we find novel uses for them. What follows is my proposal to use the difference between expected and actual value segmented by batted ball type and venue to determine park factors (and potentially evaluate defensive value, as described in the footnote). Unfortunately, someone smarter than me was already way ahead of me. I’ll get to that in a second.

A typical park factors grid, such as those produced by ESPN or FanGraphs, commonly relies on outcomes — outcomes of plate appearances (ESPN), batted ball categories, or both (FanGraphs). They describe what actually occurred, the way wOBA describes a hitter’s actual production. Conversely, expected wOBA (xwOBA) describes what should have occurred based on a batted ball’s exit velocity (EV) and launch angle (LA). It strips away everything else, holding constant all other environmental factors in order to deliver an otherwise-context-neutral EV/LA-based value.

The difference between wOBA and xwOBA (“wOBA minus xwOBA,” or wOBA—xwOBA for short), therefore, effectively captures all value amassed or lost by other variables. In other words, if wOBA explains what actually happened in a non-neutral environment, and xwOBA explains what should’ve happened in a neutral environment, then the difference between them characterizes the effect of the environment — the ballpark itself.

Unfortunately for me (but fortunately for everyone else), Tony Blengino already did this (which is why he’s a former MLB executive and I’m not). In 2017, he used Statcast data to calculate park factors on the basis of expected outcomes relative to actual league-average production. For all intents and purposes, it’s the same idea.

Consider this post a refresher on the topic.

Let me call your attention back to a simpler time. If you search “Miguel Cabrera xwOBA” on Twitter, you’ll find, well, not a multitude, but at least a sampling, of Tweets from the summer of 2017 lamenting Cabrera’s (and his teammate’s) bad luck by measure of wOBA—xwOBA:

Read the rest of this entry »


Modeling SwStr% and GB% Using Velocity and Movement

This year, I’ve been caught up on pitching. I investigated the nuance inherent to swinging strikes, indirectly made a case for completely abandoning the sinker with this piece comparing pitch type outcomes, and (maybe) identified the keys to unlocking pitcher BABIP and HR/FB.

Here, I’ve modeled swinging strike and ground ball rates using only pitch velocity movement. Surely, this work can be improved; my quantitative tool set, while fairly robust compared to the layman, is meager compared to the professional or even hobbyist statistician. Regardless, I think it’s pretty cool, and I hope it adds to the conversation constructively.

Mostly, this serves to satiate my own curiosity. Unfortunately, it may be denser than I expected — few answers are ever quite as simple as you hope them to be, I guess.

Existing Research

I linked to several of my own pieces above. Dan Lependorf wrote about estimating ground ball rates in 2013 at the Hardball Times, although its conclusions have an anecdotal slant. (It thinks about velocity and movement but doesn’t take the requisite steps to bridge the logic.)
Read the rest of this entry »


Contextualizing the Swinging Strike Rate

As a Twitter dork, I’m exposed to a lot of discussion about swinging strike rates (SwStr%), so much so that it almost feels like it has supplanted xFIP (or other comparable metrics) as a catch-all way to evaluate pitchers. Dude has a 12.5% whiff rate! Sweet. It’s not for naught — swinging strike rate bears a strong correlation to strikeout rate (K%), which comprises substantial portions of the regression equations that underpin the aforementioned xFIP and its counterparts. Swinging strike rate’s correlation to the following metrics (using data from the last five years of 714 pitchers who threw at least 100 innings in a given season):

  • K%: r = 0.83
  • SIERA*: r = 0.61
  • xFIP*: r = 0.55
  • FIP: r = 0.50
  • ERA: r = 0.40

(*See footnote.)

It also correlates strongly year over year (among 392 player-seasons during the same timeframe in which the pitcher threw 100 innings in the current and subsequent seasons):

Read the rest of this entry »


BABIP on Oppo Ground Balls (Plus Crowdsourced Sleepers)

A few weeks ago, I dug through some PITCHf/x data, courtesy of Baseball Savant, and calculated the BABIP (batting average on balls in play) on ground balls to the pull side by velocity for hitters by handedness in 2015. There are a lot of prepositional phrases in that last sentence, but instead of trying to further clarify it, I’ll summarize the findings: right-handed batters hit for a higher batting average on pulled ground balls at every batted ball velocity than did left-handed batters in 2015.

It’s a long time coming, and I’m here to present the same analysis but for ground balls to the opposite field.

But, first, some quick housekeeping. Following my recent ADP (average draft position) research, I asked readers to predict which players’ end-of-season (EOS) rankings would outshine their ADPs for 2016, given some certain conditions. Twenty-seven readers responded and the results are in, ranked by frequency of votes:

Read the rest of this entry »


Trying to Capture the BABIP Penalty for Lefty Hitters

Where the defensive shift and batting average on balls in play (BABIP) intersect intrigues me, but I’ve had a hard time figuring out a way to quantify it without having some sort of access to shift data. Despite advances Major League Baseball has made in measuring and collection data, not all of this information is publicly available or easily accessible, even if you know someone who knows someone (this guy).

But I think I finally had some kind of breakthrough or epiphany or what-have-you. It would be a time-intensive approach — a problem for a lazy person (this guy) — but it would be worth it to, perhaps, chip away at the relatively enigmatic BABIP with only publicly available tools at our disposal.

More than four months ago, I posted an expected BABIP (xBABIP) equation that is not necessarily better than any other that exists but does use strictly publicly available data. Here, I expand.

Read the rest of this entry »