除了打擊跟投球有各種細項,Baseball Savant 同時也提供了關於守備的數據細項給我們查詢。今天就來介紹那些細項,還有 pybaseball 的 methods 可以用來獲得哪些資料吧。
獲得各野手的 OAA (Outs Above Average) 資料。OAA 是最近用來評定守備能力的指標,是一個累積值,Statcast 會根據他們的數據,計算每個守備機會能製造出局的機率,再根據守備員成功與否加減 OAA 值。舉例來說,如果某一次守備機會成功率為 75%,如果成功 OAA 會上升 .25,如果失敗 OAA 會下降 .75。Savant 也提供球員移動各方向,以及各守備站位的 OAA 可以篩選:
from pybaseball import statcast_outfield_directional_oaa
# 獲得 2023 球季外野手各方向 OAA
statcast_outfield_directional_oaa(2023)
# 獲得 2023 球季外野手各方向 OAA,並限制投手至少要達成 200 守備機會
statcast_outfield_directional_oaa(2023, 200)
https://baseballsavant.mlb.com/leaderboard/outs_above_average
year
:查詢的球季,必填,需為整數。pos
:選取特定守備位置,但不包含投手跟捕手,捕手會另外算其他數據。可以填入 all
、IF
內野、OF
外野的大範圍,也能填入 1B
或是代號 3
來代表守備位置。可以參考 utils.py 裡的資訊。min_att
:最小守備次數,可以篩選最小守備次數至少幾次,預設會是 q
,二壘、游擊、三壘跟外野的預設是球隊每出賽一次至少有一次守備機會,如果是一壘就是每兩場球隊出賽至少一次守備機會。view
:資料的觀點,會根據選項調整呈現的 OAA,選項會有 Fielder
守備員, Pitcher
投手, Fielding_Team
守備球隊, Batter
打者, and Batting_Team
進攻球隊。預設是 Fielder
。如果是選投手,那就會呈現投手在投球時,守備員們的 OAA。如果是選打者,就會是呈現打者打的時候,對面防守球隊的 OAA。選擇隊伍就會是呈現隊伍總和。範例:
from pybaseball import statcast_outs_above_average
# 獲得 2023 球季所有位置,並有至少 50 次守備機會的 OAA 資料
statcast_outs_above_average(2023, "all", 50)
# 獲得 2023 球季中外野手的 OAA 資料
statcast_outs_above_average(2023, pos = "cf")
# 獲得 2023 球季游擊手的 OAA 資料
statcast_outs_above_average(2023, pos = 6)
# 獲得 2023 球季內野的 OAA 資料,並有至少 100 次守備機會的 OAA 資料
statcast_outs_above_average(2023, pos = "IF", min_att = 100)
# 獲得 2021 球季內野的 OAA 資料,並使用投手視點下的資料
statcast_outs_above_average(2021, pos = "IF", view = "Pitcher")
外野手的各方向 OAA,有往前往後的各項資料。往前是往本壘方向,往後是遠離,顯示的數字會四捨五入。Savant 頁面會有精美的圖可以看:
Statcast Directional Outs Above Average | baseballsavant.com (mlb.com)
year
:查詢的球季,必填,需為整數。min_opp
:最小守備機會,可以篩選最小守備機會至少幾次,預設會是 q
,外野的預設是球隊每出賽一次至少有一次守備機會。範例:
from pybaseball import statcast_outfield_directional_oaa
# 獲得 2023 球季外野手各方向 OAA
statcast_outfield_directional_oaa(2023)
# 獲得 2023 球季外野手各方向 OAA,並限制至少要達成 200 守備機會
statcast_outfield_directional_oaa(2023, 200)
獲得外野手接各種球的接球率,Statcast 會計算接球機率並分類,有五種等級。這個頁面能知道選手遇過各種等級的次數,跟實際接到幾球,並算出接球率。會由 OAA 大到小排序。
Statcast Catch Probability | baseballsavant.com (mlb.com)
year
:查詢的球季,必填,需為整數。min_opp
:最小守備機會,可以篩選最小守備次數至少幾次,預設會是 q
,外野的預設是球隊每出賽一次至少有一次守備機會。範例:
from pybaseball import statcast_outfield_catch_prob
# 獲得 2023 球季外野手接球機率
statcast_outfield_catch_prob(2023)
# 獲得 2023 球季外野手接球機率,並限制至少要達成 200 守備機會
statcast_outfield_catch_prob(2023, 200)
獲得外野手完成接球前的速度資料,會分成 Reaction (反應)、Burst (爆發)、Route (路線)。他顯示的資料會是相較於大聯盟平均,多省了幾步。另外他計算會只考慮 2 星級以上守備,也就是接球機率小於等於 90% 的資料。Savant 一樣有精美的圖讓大家更好了解概念:
Statcast Outfielder Jump Leaderboard | baseballsavant.com (mlb.com)
year
:查詢的球季,必填,需為整數。min_att
:最小守備機會,可以篩選最小守備次數至少幾次,預設會是 q
,外野的預設是球隊每出賽五次至少有一次二星守備機會。範例:
from pybaseball import statcast_outfielder_jump
# 獲得 2023 球季外野手 Jump
statcast_outfielder_jump(2023)
# 獲得 2023 球季外野手 Jump,並限制至少要達成 20 守備機會
statcast_outfielder_jump(2023, 20)
獲得捕手的 Pop-time,也就是捕手接到球後到守備員所需要花的時間,用來評估捕手抓跑者的能力。也會有像是 Arm (手臂強度,單位是 MPH) 跟 Exchange (捕手接到球到傳出去花的時間) 的數值。傳二壘跟傳三壘也會分開顯示。
Statcast Catcher Pop Time Leaderboard | baseballsavant.com (mlb.com)
year
:查詢的球季,必填,需為整數。min_2b_att
:最小傳二壘次數,預設為 5。min_3b_att
:最小傳三壘次數,預設為 0。範例:
from pybaseball import statcast_catcher_poptime
# 獲得 2023 球季捕手的 Pop-Time,並限制至少要傳二壘 10 次,以及傳三壘 2 次
statcast_catcher_poptime(2023, min_2b_att = 10, min_3b_att = 2)
捕手偷好球帶的數據,會顯示各區域捕手偷好球的比例,也能知道 Catcher Framing Runs (由偷到的好球可以轉換成守住的分數,一個好球能守住 0.125 分) Savant 頁面會用格子圖讓大家知道是哪一個區域,並能像 OAA 一樣選擇其他視點,目前 pybaseball 只有捕手視點:
https://baseballsavant.mlb.com/catcher_framing?year=2023
year
:查詢的球季,必填,需為整數。min_called_p
:最小主審決定好壞球的球數,預設會是各區域至少** 6 球 * 球隊出賽數**。範例:
from pybaseball import statcast_catcher_framing
# 獲得 2023 球季捕手偷好球資料
statcast_catcher_framing(2023)
# 獲得 2023 球季捕手偷好球資料,並各區域至少要有 200 球由主審決定好壞球
statcast_catcher_framing(2023, 200)
今天介紹 Statcast 的守備相關 methods,感謝大家耐心地看完。平常我們評斷球員守備好壞只有守備率,但 Statcast 提供更多其他指標讓大家可以參考,很推薦大家多去 Savant 頁面多試試。明天會介紹其他 Statcast methods,如果篇幅還有剩會補充一些前面提到的 method。