Jake Arrieta recently got into the news by criticizing the Phillies for their poor use of defense shifts. Thinking about defense shifts, Baseball Savant recently made infield and outfield assignment information available and one can download this data using the baseballr package. Here we’ll introduce this new shifting data and do a brief exploration. Here are some questions to get us started:
- How does infield shifting vary among teams?
- Who are the current hitters who are most shifted?
- Is shifting effective?
This won’t be a complete analysis, but it hopefully will get the interested reader going on his or her own analysis.
Shifting per Plate Appearance
When you download the 2018 Statcast data for batters, there are two new variables “if_fielding_alignment” and “of_fielding_alignment” that indicate the defensive alignment in the infield and outfield. Since each row of the data frame represents a pitch, this allows for changes in the defense alignment for each pitch. Focusing on the infield alignment, there are three values — “Standard” indicates the usual positioning, “Infield shift” indicates there are three or more infielders on one side of 2nd base, and “Strategic” represents positioning that is neither Standard or Infield Shift. MLB provides a nice webpage describing these infield alignments.
Although infield positioning can vary across pitches, we will focus on the positioning at the last pitch of a PA. For each PA, I collect (1) the top or bottom half of the inning, (2) the PA event, (3) the launch angle and launch speed of this last pitch, (4) the infield positioning, (5) the batter’s name and (6) the side of the batter. Knowing the home and away teams and the top/bottom of inning indicator, I can define a new variable “defense” which is the team that is playing defense for a particular half-inning.
Shifts by Teams
One thing I know is that positioning can vary depending on the side of the hitter. For each team, I compute the percentage of infield shifts against right-handed batters and the percentage of infield shifts against left-handed batters. I plot a scatterplot of these percentages below. The red line is the line y = x — note that all points are above the line indicating that all teams are more likely to shift against left-handed batters. (These summaries are reported by Baseball Savant which agree with the values presented here.)
The variation of shifting among the teams is remarkable. Houston will shift 60% of the time against left-handed hitters — in contrast, the Cubs rarely shift against either right-handed or left-handed hitters. We see the Phillies are above-average in their shifting tendency. The Yankees shift against left-handed hitters much like Houston, but they don’t shift as much against right-handed hitters.
Shifts for Players
Since teams have detailed data on the spray angles of all hitters, one would suspect that some players are heavily shifted. Below for all players, I plot the percentage of infield shifts against the number of PAs — I label the players where the shifting percentage is larger than 80%. Chris Davis is currently the shift leader with 190 shifts out of 207 for a shift percentage of 92%. (ESPN recently commented on Chris Davis’ rough season from a batting perspective. Maybe these shifts are working against Davis.)
Is Shifting Effective?
Since teams appear to vary a lot in how they employ infield shifts, that raises the obvious question — does it work? This is a complicated question to answer, since one needs to consider a variety of different outcomes of a PA and see how each outcome varies by the defensive alignment. Let me present several tables — one that shows that infield shifting is effective and a second that suggests that it may not be that effective.
Outcome of Groundballs
I would think that infield shifts would prevent ground balls from being base hits. I focus only on balls in play where the launch angle is smaller than 10 degrees. Here is a table of the batting average (BA) under the three infield alignments — the “Standard” BA is 0.280 and it drops to a BA of 0.232 with an infield shift — so it appears to work using this criterion.
Value of Plate Appearance
But the above definition of success is pretty limited — we’re only considering balls in play that are ground balls. Suppose we weight the outcome of each plate appearance using the 2018 wOBA weights (obtained from FanGraphs). Here I find the wOBA (remember we are using 2018 data) for each of the three infield alignments. Now we get a different story — the “Standard” wOBA value is 0.311 and it increases to 0.320 with an infield shift. So hitters tend to be more successful in their PA when there is a shift. The “strategic” alignment produces a small change in the wOBA.
- I’m excited that this infield and outfield alignment data is now publicly available from Baseball Savant. The main intent here was to introduce the data and explain briefly why it should be of interest to us.
- It is interesting that teams vary greatly in how they shift. This seems to indicate that the jury is still out on the value of shifting. One general goal is reducing the number of runs scored by the batting team. It has been said that the Phillies have lost a particular number of runs this season due to their shifting strategy. It would be interested in explore this runs measures for all teams.
- Generally I’d encourage the interested reader to look at the value of shifting using different outcomes. I just presented two outcomes that gave varying conclusions.
- Here I focused on the shifting at the last pitch of the PA. It would also be good to look at the change in shifting within a plate appearance — since this data gives alignment data for each pitch, this type of analysis is possible.
- There are some interesting reads on the value of shifting in baseball. ESPN just had an article on this topic, and Russell Carleton in his book The Shift devotes an entire chapter to this topic — it is more complicated that one might think.
Once you get the Statcast data downloaded, this analysis is pretty straightforward using the tidyverse collection of packages. Here is the code I used for this work.