Wednesday, December 8, 2010

Interesting Posts at Rational Past Time Related to My Previous Strike Zone Map Post

J-Doug at Rational Pastime has some cool posts looking at umpire strike zones at his site (and cross-posted at Beyond the Boxscore). I was curious about this issue as well with some work I've been doing here in the office (which I'll refrain from talking about at this point).

Anyway, J-Doug looks at the strike zone size of RHB and LHB, concluding that lefties get the shaft (larger strike zone). Now, I only have Bruce Froemming's data in R right now, but I was curious if we would see anything different using A. Just Froemming for now and B. Using the GAM package, rather than a standard loess. Below is the 'gam' generated heat maps from my last post for LHB and RHB (LHB got deleted somehow when I posted, and I'm getting extremely frustrated with Blogger's posting options).

And here is a standard loess with some new smoothing parameters than I had in my last post:

Now a few caveats: first, I have not normalized the strike zone height, the box is simply the average zone for everyone in the dataset. So the fact that we see calls spread a little further above the strike zone for righties than for lefties may just mean lefties are overall taller than average (or it could just be some random noise). Secondly, this is only one umpire, while J-Doug has more than that. Lastly, I'm still in experimental mode with the gam models, so I could be totally off here.

Now to the interesting parts. Looking at the GAM model heat maps (the ones using the binomial assumption for the response) seem to show that the zone for right-handed batters is a little bigger than that for left-handed batters. In fact, this seems to be the case for both the standard loess and the gam package.

The main difference seems to be that the zone stretches further outside for lefties than it does for right handers. Right handers have to deal with more calls up and in and down and in than lefties apparently do (for Froemming that is).

I dunno. Just some observations. I haven't calculated confidence intervals or systematically chosen the span, but I made sure that for each of the pairs, the parameters for smoothing were the same to make them comparable. For the 'gam' model maps, I have a span of 0.5 and a first degree polynomial, while for the 'loess' model maps, I have a 0.7 span and a second degree polynomial. But the main issue is comparing RHB and LHB of each type.

So what does this mean? Well not too much. It could mean that Froemming doesn't follow the standard. It could mean that maybe using the 'gam' package is helpful in visualizing the true zone. Or it could mean that I didn't use the right parameters for my model(s). It certainly does not mean that J-Doug's conclusions are incorrect, but I'm curious how the results may look otherwise.

My Own Evidence Against Me:

Here is some evidence that the above plots (both the 'loess' and the 'gam') are incorrect from a visualization standpoint: I've also run a regression that indicates umpires as a whole are more likely to call strikes against left-handers, even after controlling for pitcher handedness, pitch location, pitch type, and a number of other factors. Another regression with respect to whether the call is 'correct' or not also tells me that umpires are more likely to make an incorrect call for left-handed batters at a rate of about 1.8%.

So in general, it sounds like J-Doug is right: left-handed batters are getting the shaft.

Finally, in general, if the above plots are visualizing the data correctly, Bruce Froemming goes against the grain when it comes to giving an advantage to Right Handed batters (I didn't run a separate regression for him).


  1. Millsy:

    First of all, thanks for the shout-out.

    Second of all, I should perhaps clarify that I use a completely different method to draw the zone than I do to estimate biases.

    My bias model, which you can look at in depth here (, is a logistic regression model based on 2008-2009 Pitch FX data on called pitches. The dependent variable is "call," which is labeled as -1 for errant ball, 0 for correct, and 1 for errant strike. It controls for the location of the pitch (so holding this constant, we can see whether or not the other variables correlate with a pro-pitcher or pro-hitter bias), as well as a bunch of other stuff. One of these variables is a dummy for right-handed batter, and the correlation is both negative (pro-hitter) and statistically significant.

    I draw the strike zone in a completely different, and comparatively unsophisticated model. I assume that the real strike zone is an ellipse, and measure the outer boundaries of the real zone by estimating the kernel densities of balls and called strikes on both dimensions, smoothing them using Epanechnikov, and then measuring where they're equal. I then tell my stat package to draw an ellipse that conforms to these calculations.

    As you can probably tell at this point, my visualization capabilities are far less complex than yours. That said, there's good reason why the theoretical "real" zone predicted by kernel density and the observed "real" zone might not say the same thing. For one, the pitch distribution is random to a certain degree. For another, pitchers have (albeit incomplete) knowledge of the zone and adjust accordingly.

    Point being, my (or any) smoothed density method can find that a certain strike zone exists, but the real impact on actual pitches thrown may differ simply because the total number of pitches thrown is not uniform, or even all that smooth. One way to overcome this might be to apply the smoothed model to generate expected values relative to the legal zone, but I have not attempted this.

    In a related matter, those are a some neat looking charts.

  2. Hey J-Doug,

    Thanks for stopping by. I was actually curious what you used to build the model. I had originally used some 2d kernel density smoothing as well, but as you say it's difficult to tell what's going on with the pitch calls, because there are more in some places than others. The above is actually not the density version, but a loess that tells us the probability that it will be a strike (rather than telling us where all the strikes are).

    The model I ran at the end of this post was simply a linear probability model for Ball/Strike and then for "Correct Call/Not Correct". I don't distinguish between correct balls and correct strikes like you have (something I'm working on at work for another project, though). Ultimately, I found a similar conclusion to you: that lefties generally get the shaft.

    I really like your charts as well. I'm still trying to figure out exactly how to draw a circle/ellipse on my heat maps.

    Thank you or the kind words about my charts.

  3. J-Doug,

    Quick question. You said you ran a logistic regression with a -1,0,1 response. I assume you mean multinomial logistic?

    And just addressing the 'expected values relative to the legal zone', that is actually what the plots above *should* be doing. The color represents the probability of a strike call, rather than the number of strike calls. In other words, it is a logistic loess regression, smoothing these probabilities to create that zone using a set bunch of points on the chart that I laid out (from Dave Allen's code). The logistic version seems to be much more robust to outliers in the data than the standard loess version, which was the point of my post just previous to this one.

  4. "Quick question. You said you ran a logistic regression with a -1,0,1 response. I assume you mean multinomial logistic?"

    I'm using ordinal logit and controlling for bad call good call, so that I can look at the directionality to infer the type of bias (and also because I do think the variable itself is, in a way, ordinal). I did just discover an error I was making so I'll be making some revisions.

    "And just addressing the 'expected values relative to the legal zone', that is actually what the plots above *should* be doing."

    Right, and I'm investigating other types of smoothing approaches. I just wanted to note that I drew my conclusions from my ologit model and not the smoothed zone.

  5. Gotcha. I'm also trying to brainstorm some ways to model the direction of the bias itself (toward batter or pitcher).

    Keep them coming, very interesting stuff.