変化の大きな変化球は見極められやすいのか。

 「変化の大きな変化球は打者に見極められやすくボール球を振ってもらえない」と言われることがある。実際にstatcastデータからそのような傾向があるのかを探る。

スライダー

画像1

画像2

 上記の画像は同じ利き腕同士の対決でスライダーの変化量別のSwing%を調べたものだ。横位置の値は大きければ大きいほど打者から見て外側のコースを示している。条件を揃えるため両者の球速帯は135~140km/hで固定している。丸で囲まれている線は50%超のスイング率を記録しているラインだ。

 上の画像は横変化量7.5cm未満(自由落下よりボール1個も横に動かない)、下の画像は横変化量22.5cm超(自由落下よりボール3個超動いている)のスライダーだ。両者を見比べると大きな変化の方は外のゾーンのボール球をよく振らせていることがわかる。ボール球を振らせる効果が高いのは横曲がりの大きなスライダーのようだ。

 O-Swing%でいうと変化が大きなスライダーのが2.5%ほどボール球を振らせている。

オフスピードボール(チェンジアップ、スプリット)

縦変化15以上

縦変化15未満

 上記の画像は異なる利き腕同士の対決でオフスピードボールの変化量別のSwing%を調べたものだ。横位置の値は大きければ大きいほど打者から見て外側のコースを示している。条件を揃えるため両者の球速帯は140~145km/hで固定している。丸で囲まれている線は50%超のスイング率を記録しているラインだ。

 上の画像は縦変化量15cm以上(自由落下よりボール2個以上ホップする)、下の画像は縦変化量15cm未満(自由落下よりボール2個未満のホップ量)のオフスピードボールだ。両者を見比べると縦変化が小さい(沈む)方は低めのゾーンのボール球をよく振らせていることがわかる。ボール球を振らせる効果が高いのは大きく沈むオフスピードボールのようだ。

 O-Swing%では縦変化の小さい(沈む)オフスピードボールのほうが10.3%ほどボール球を振らせている。

まとめ

 大きな変化は打者に見極められやすくスイングを誘発させにくいとされるがボール球を振らせる効果が高いのはスプリットとスライダーに関して言えば変化の大きなボールのようだ。打者は変化量でボールを見極めているわけではないのかもしれない。

Rのコード

#https://rpubs.com/Seven_Factorial/Rsaber-chapter6を基に等高線図を作る

#dfにはstatcastの2017-2020データが入っている
library(tidyverse)
library(directlabels)


#カウントと投球結果の列を作る

df <- df %>%
 mutate(
   throws_stand = ifelse(p_throws == "R" & stand == "R" | p_throws == "L" & stand == "L","same","different"),
   velocity = release_speed * 1.609,
   pfx_x_cm = ifelse(p_throws == "R",pfx_x * 30.48,pfx_x * -30.48),
   pfx_z_cm = pfx_z * 30.48,
   plate_x_cm = ifelse(p_throws == "R",plate_x*30.48,plate_x*-30.48),
   plate_z_cm = plate_z * 30.48,
   swing_denom = case_when( 
     description == "swinging_strike" ~ 1,
     description == "swinging_strike_blocked" ~ 1,
     description == "foul_tip" ~ 1,
     description == "foul" ~ 1,
     description == "hit_into_play" ~ 1,
     description == "hit_into_play_score" ~ 1,
     description == "hit_into_play_no_out" ~ 1,
     TRUE ~ 0))

SL_small <- df %>%
 filter(pitch_type == "CH" | pitch_type == "FS")%>%
 filter(pfx_z_cm >= 15)%>%
 filter(throws_stand == "different")%>%
 filter(velocity >=140 & velocity <= 145)

SL_small_plot <- SL_small %>%
 sample_n(500)
k_zone_plot <- ggplot(SL_small_plot, aes(x = plate_x_cm, y = plate_z_cm)) + 
 geom_rect(aes(xmin = -21.6, xmax = 21.6, ymin = 45, 
               ymax = 108), fill = NA, color="black") + 
 coord_equal() + 
 ggtitle("140~145km/h OffSpeed 縦変化15cm以上 異なる利き腕同士 Swing%")+
 scale_x_continuous("横位置(cm)", 
                    limits = c(-60, 60)) + 
 scale_y_continuous("縦位置(cm)", 
                    limits = c(0, 125)) 
k_zone_plot + 
 geom_point(aes(color = factor(swing_denom))) +
 scale_color_manual("Swung", values = c("gray70", "blue"), 
                    labels = c("No", "Yes"))


smallSL_loess <- loess(swing_denom ~ plate_x_cm + plate_z_cm, data = SL_small, 
                      control = loess.control(surface = "direct"))


pred_area <- expand.grid(plate_x_cm = seq(-60, 60, by = 3), 
                        plate_z_cm = seq(0, 150, by = 3))
pred_area_fit <- pred_area %>%
 mutate(fit = as.numeric(predict(smallSL_loess, 
                                 newdata = .)))

cabrera_plot <- k_zone_plot %+% 
 filter(pred_area_fit, fit >= 0, fit <= 1) +
 stat_contour(aes(z = fit, color = ..level..), 
              binwidth = 0.5) + 
 scale_color_gradient(low = "white", high = "blue")

cabrera_plot <- cabrera_plot %>%
 directlabels::direct.label(method = "bottom.pieces")
cabrera_plot

この記事が気に入ったらサポートをしてみませんか?