Tuesday, August 30, 2016

Dude, What Happened Last Night? About Pitch f/x Error

Pitch f/x suffered a major malfunction at the wrong time—an ejection—Monday night in Kansas City. Whether due to the triangulation technology itself or due to Pitch f/x operator error (the more likely culprit), Brian O'Nora's ejection of Joe Girardi on Monday received an "incorrect" Quality of Correctness during the game, based on the "live" Pitch f/x numbers, only for QOC to be reversed to "correct" based on the overnight "revised" PFX figures. Just imagine if YES Network had actually shown the computerized strike box.
Pitch #2, as reported by BrooksBaseball, and called "live."

To recap, the initial or "live" ejection report featured Yankees batter Didi Gregorius taking a 0-1 slider from Royals pitcher Chris Young for a called second strike. Its px value was 1.222 and its pz was .907 with a sz_bot of 1.570. In other words, the ball was horizontally over a foot to the right of the center of home plate (meaning, to the left-handed Gregorius, it was inside), and it vertically was less than a foot off the ground, or about eight inches below Gregorius' knee hollow. In the diagram to the right from BrooksBaseball.net, this pitch is represented by the red square indicated as "2" (with the orange arrow pointing to it).

Pitch #2, shown in Gameday's plot after revision overnight.
However, the overnight or "revised" pitch tracking from Pitch f/x on MLB Gameday made the following changes to the initial report (changes are indicated in bold): Gregorius now took a 0-1 fastball from Young whose px value was .456 and pz was 1.675 with a sz_bot of 1.62. Thus, the pitch type changed from slider to fastball, the horizontal location was now over the inner half of home plate instead of in the lefty's batter's box, and the vertical location was 2/3 of an inch above the bottom of the strike zone. It's almost as if it was an entirely different pitch.

To explain how this happened necessitates the understanding of a key fact in today's computerized system known as pitch f/x: PFX is subject to several types of error, including operator error.

Sorry Joe, Brian was right all along.
I'll leave you with the post-mortem report: the "live" graph only has six pitches whereas the "overnight" graph has seven. Similarly, "live" pitch #2 looks awfully similar to "overnight" pitch #3, "live" #3 looks like "overnight" #4, and so on until "live" #6 and "overnight" #7. At the other end of the spectrum, notice that "live" #1 corresponds fairly well with "overnight" #2 and that there is no "live" pitch to go alongside "overnight" #1. Long story short, this is a missed pitch error. Read on to read about other potential causes of pitch f/x error and where a missed pitch may come from:

Calibration Error: With any triangulated system—or any system that provides a measurement for that matter—the device must be calibrated before use. With Pitch f/x, the capturing devices must work together to provide a fairly depiction of a ball's location, for instance, as it arrives at the front edge of home plate. If a Pitch f/x device is not calibrated properly, its measurements for the entire game may be erroneous, yet consistent batter-to-batter (more info here). PitchInfo/BrooksBaseball, for instance, advertises the ability to correct for the consistent error that is due to calibration problems. Thus, had last night's event been due to calibration error, one would surmise that Brooks would have picked up on it and corrected for it (Brooks didn't). Likewise, the error would have been consistent from pitch to pitch (it wasn't).

Measurement/Capture Error: Classification error may be considered a subset of measurement error, but for the purpose of this discussion, measurement error is distinct from calibration error in that measurement error is not necessarily consistent from pitch-to-pitch (while calibration error, for the most part, is consistent from pitch to pitch). Recall that pitch f/x provides a px value and a pz value, both of which are exact data points; however, the baseball is a sphere with a certain volume and a diameter of approximately 2.9 to three inches. Thus, it's important to note that pitch f/x is able to do its job by capturing only the center point of the baseball. As such, measurement error results when the camera has trouble finding the exact center of the baseball from the captured image: a blurry ball, an odd shadow, humidity, wind, or other discoloration can hamper the technology's ability to accurately provide location information.

Fitting or Modeling Error: Since pitch f/x captures multiple position measurements based on the ball's flight during the pitch, it uses a best fitting algorithm to place the ball at the front edge of home plate. If the camera is having trouble picking up the ball (see measurement error) or following it, or if an outlier data point appears, it may improperly model the pitch location at home plate's front edge.

2D Strike Zone: This is not so much a bona fide error as a pitfall of the present PFX technology and its method of reporting the pitch's location as it reaches the front edge of home plate. The strike zone is obviously three-dimensional and the front edge-reported px and pz values do nothing to measure the zone's depth. Best fitting algorithms can predict the ball's flight through a 3D zone, though this is subject to modeling error.

Pitch Classification Error: MLBAM's Ross Paul first developed an algorithm to mathematically determine pitch type over five years ago. The reason this discussion is brought up is because the initial classification of slider changed overnight to fastball, meaning that something changed when processing through the classification algorithm overnight. This algorithm looks at things like pitch speed versus spin axis angle, release point, movement, break, etc. So for a slider to become a fastball means that some variable other than simply the location at home plate's front edge also changed.

Operator Error: This could apply to either the Pitch f/x operator or Gameday operator (stats stringer). Among the pitch f/x operator's tasks is to set the strike zone for each batter, or for each pitch. If the operator incorrectly indicates or allows the cameras to incorrectly locate the batter's knee hollow or upper midpoint, sz_bot and/or sz_top will be incorrect. The stats stringer logs and reports each pitch and game event in MLBAM's Gameday system. If the stringer misses a pitch or misreports an event (e.g., attributes Pitch #1's qualities to Pitch #2 or vice versa), this could have a cascading effect on future pitches, resulting in multiple errors, which is likely what happened Monday night in Kansas City.


Post a Comment