資料隨筆-運動同棒球嘅統計同資料分析入門(二) — WAR
Introduction to Baseball and Sabermetrics with Python in Cantonese — Wins above replacement
前言
上一篇講咗幾個基本嘅棒球統計數字。
今次想特別講一樣嘢,就係 Sabermetrics 入面好重要嘅 Wins above replacement(WAR)。今篇會去講下 WAR 入面啲數值係咩嚟,之後再講下用 WAR 做預測同埋試下睇下可唔可以將 WAR 套用落其他運動上面。
咩係 WAR?咩係 Replacement?
係講點計、計出嚟係點之前,要講下呢個字點解先。首先,Replacement 係來自 Replacement Level。Replacement Level 係一條 Baseline 去判斷球員,意思係用最小嘅價錢可以得到嘅實力等級。咁所以 Wins Above Replacement 就係講,比起 Replacement Level 球員,個球員可以為球隊帶嚟多幾場勝利。換句話講, 1 WAR 就代表個球員會為球隊帶嚟一勝。
WAR 有意思嘅地方係,棒球係一個有分攻守嘅運動,而本來要比較攻守球員係一件好難嘅事,但用 WAR 就可以比較到,另外,亦都可以用嚟比較唔同時代嘅球員。
另外,WAR 係一個好易理解嘅指標,即使同唔識棒球嘅人講,Mike Trout 16 年個陣 WAR 有 10.5,佢就知道 Mike Trout 落場會為球隊帶嚟 10.5 場勝利。
不過 WAR 亦都有缺點,例如佢冇統一嘅公式,例如最出名嘅兩個棒球統計網站 — FanGraphs 同 Baseball-reference,就對於每一項數據都有啲唔同計法,簡單如 wOBA 嘅計法都有少少差異,Fielding Runs(防守能力)嘅差別仲大,一個用 Defensive Runs Saved,另一個用 Ultimate Zone Rating。亦都係因為咁,佢地有時計出嚟嘅 WAR 會差好遠,當然大部份時間係相近。
加上 WAR 入面嘅 Parameters 同 Variables 都會改,而且有好鬼死多變種。仲有就係,WAR 條式都幾多項下,鐘意睇波唔鐘意睇數字嘅人會唔多鐘意。
即使係咁,WAR 都係一個表現唔差嘅指標,所以呢篇文將會圍繞住佢嚟講。
正文
其實唔想自己計,FanGraphs 或者其他網上面,都會有佢地計完個現成 WAR 或者其他數字係度。
之但係,如果想知道佢點計、點解,甚至想應用佢落其他運動上面,就要快多些少心機同時間,亦都係呢篇文會用嘅嘢。
呢篇文會採用 FanGraphs 版本。咁不論咩版本,WAR 都係基於呢幾個項目嚟計:
WAR = (Batting Runs + Base Running Runs + Fielding Runs + Positional Adjustment + League Adjustment + Replacement Runs) / (Runs Per Win)
咁 Batting Runs 即係擊球能力、Base Running Runs 即係跑壘能力、Fielding Runs 就係防守能力,後面三項就係數字上嘅調整去令到個比較成立同合理。咁除返 Runs Per Win 嘅原因係因為上面計出嚟嗰個係 Runs,要將佢轉返做 Wins。咁你鐘意整個 Runs Above Replacement,都冇問題。
之後就一項項講下佢點計。
Batting Runs — 打擊能力
Weighted On-Base Average
首先係計咗上次都有提過嘅 Weighted On-Base Average(wOBA)出嚟先,計法就好簡單,將權重乘返四壞同唔同安打數,再除返打席數。由於個權重係人手定義出嚟,所以每年個權重都唔同,數值就可以參考返 FanGraphs。關於佢點計出嚟,就參考呢度。咁總之就係,因為我地唔知道實際嚟講,一支三壘打係一支一壘打嘅幾多倍,只能夠咁樣去估算。
咁近十年平均 wOBA 就係上面張圖。一般嚟,用 wOBA 做指標,大過 0.4 就係最頂尖嘅打者,大過 0.37 就係一流打者,平均就係 0.32。雖然 wOBA 個數字講緊每次打席嘅期望值,但係咁都係幾難理解,個球員實際會為球隊帶嚟幾多分進帳,所以,我地就要將佢轉做 wRAA。呢個亦都係 wOBA 常用嘅原因之一,好容易轉換成分數(Runs)。
Weighted Runs Above Average
Weighted Runs Above Average(wRAA),數如其名,就係計下個球員嘅攻擊能力會為球隊帶嚟幾多分。wRAA 係一個按年比較同計算嘅數字,條式係,將球員 wOBA 減去聯盟平均 wOBA,除返嗰年個系數,再乘返打席數。之後講返 WAR 嘅時候都會再講,平均嚟講 10 wRAA 就代表住 1 Wins。
Base Running Runs — 跑壘能力
Base running 即係咩呢?
In baseball, base running is the act of running around the bases performed by members of the team at bat.
by Base running, Wikipedia
咁棒球唔係打完就算,要跑到返屋企先收工。極端啲講,如果每一支一壘打,比你由二壘跑到返屋企,就代表你為隊波帶嚟隔外幾十分收入。
咁 Base Running Runs 就係將呢個跑壘能力換算成分數嘅指標。Base Running Runs 有三個部份:UBR + wSB + wGDP。
Ultimate Base Running
Ultimate Base Running(UBR)係其中一個跑壘指標,個諗法係:比較一個特定嘅情景:例如企係二壘,咁球員就會有幾個選項:留係二壘、跑去三壘、跑返本壘同比人殺。
每個球員同埋聯盟平均都會有一個頻率,例如 5–40–30–25% 就係 5% 留係二壘、40% 上到三壘咁,咁加權之後就會得到一個期望值,例如 0.7 Runs,就講緊當呢個球員企係二壘,擊球手打出一支一壘安打嘅時候,球員會獲得 0.7 分。
假設平均數係 0.7 Runs,而個球員係 0.9 Runs,咁就代表每一個咁嘅情況下,比起聯盟平均嚟講,個球員嘅跑壘能力為球隊賺多 0.2 分。
不過,因為 UBR 需要到 Video Tracking Data 去計,所以我地只能夠偷佢個數去用。
上面段解釋都係將 FanGraphs 嘅例子講返出嚟,想自己睇就禁返條 Link。
Weighted Stolen Base Runs
咁 Weighted Stolen Base Runs(wSB) 就可以話係盜壘版嘅 wRAA,係解釋咩係 wSB 之前,要解釋下咩係盜壘先。
盜壘係講緊跑壘員係投手扔波個陣就已經跑出去,而唔等到擊球手打完先跑。咁做有咩好處就唔洗解釋,而壞處就係如果呢球係好球,咁捕手就可以將接到嗰粒波扔比壘手,又或者投手直接扔粒波比壘手送佢一程。
盜壘好直觀咁有分賺,同時亦都有對應嘅統計數字:盜壘成功嘅 SB 同埋盜壘失敗嘅 CS,好自然納入 Base Running Runs 嘅計算。而 wSB 就係加權之後盜壘嘅賺分,條式都係咁上下,將盜壘成功同失敗乘返當季個權重,再減返聯盟平均數。
Weighted Grounded into Double Play Runs
最後就係,Weighted Grounded into Double Play Runs(wGDP)。呢個項目係關於個球員回避雙殺嘅能力。雙殺就係講緊一個打席入面,防守方解決兩個進攻球員,簡單舉例就係跑壘員比防守方回傳觸殺,加埋擊球手,咁就係雙殺。唔明嘅話可以睇下片。
而 wGDP 就係數下球員面對幾多次可能雙殺嘅機會,再數下佢地比人雙殺咗幾多次。愈少比人雙殺,就代表佢地愈為球員賺得多分。不過 wGDP 好似同 UBR 一樣,冇資料去計,所以只能夠拎佢嗰個嚟用。
Fielding Runs — 防守能力
防守能力呢樣嘢,應該係棒球入面最重要但搞唔掂嘅資料,尤其係前魔球時代,買球員個陣,因為冇方法評估,所以好少睇防守能力,有時仲因為球員動作而令到人錯估佢地嘅能力。
例如一個守備範圍好闊嘅球員,同一個守備範圍冇咁闊嘅球員嚟比,前者當然係比較勁,但觀眾可能會因為後者成日跑同飛撲,而覺得後者比較勁。當然隨住資料收集方式勁咗,依家應該可以估算到球員嘅守備範圍分佈,更加準確咁計算防守能力。當然,有好多 Diving Catch 都好勁。
但係呢啲資料,我就搵唔到,所以講返 FanGraphs 個 WAR 點樣去衡量防守能力算。
Ultimate Zone Rating
Ultimate Zone Rating(UZR)同上面個 Ultimate Base Rating 一樣,都係 Video Tracking Data,所以手頭上嘅資料計唔到佢出嚟。
UZR 由幾個數組成,Outfield Arm Runs(ARM)、Double-Play Runs(DPR)、Range Runs(RngR)同 Error Runs(ErrR)。
ARM 講緊外野手殺咗幾多個跑手、阻止咗幾多個跑手前進。舉例嚟講,一壘有人,打手打咗支 Single,一般嚟講跑手可以由一壘跑到去三壘,但係外野手送咗粒波去三壘,停咗個跑手係二壘,咁嘅情況都會納入 ARM 嘅考慮。
DPR 講緊內野手整到幾多個雙殺。而 RngR 就係講野手接波嘅表現,將個球場𠝹開幾份,之後統計下唔同區域嘅接波表現,再計返個球員嘅接波率比平均水準高 / 低幾多。最後嘅 ErrR,就係講緊野手有幾多失誤,比較野手比平均接多 / 漏接嘅球數。最後就計返 UZR 出嚟。
中場
上面講咗投手以外嘅 WAR 計算方法,簡單嚟講,就係將球員能力分成三個項目(打擊、跑壘、防守)然後計算佢呢三項能力賺到嘅分數,分別比平均高出幾多,最後將佢地加埋一齊,再幫佢做一啲調整,例如針對唔同位置同當季聯賽做啲加減,就係球員係嗰季或者嗰年為球員賺咗幾多場勝利。
如果我地相信球員嘅能力,係季與季之間唔會有超級大嘅變動,或者可以試下用上一季隊入面每個球員嘅 WAR 去預測下季球隊嘅勝率。另外,之前都有睇過球員薪手同上壘率或者其他數字嘅關係,或者,嚟緊可以睇下 WAR 同球員薪金嘅關係。
仲有就係,照住 WAR 呢個諗法,我地可以諗下其他運動嘅 WAR 點做,例如籃波嘅 WRAA 同防守應該唔難 Form 出嚟,但係仲會唔會有其他能力呢?例如棒球冇嘅傳球、運球。相反,足球就比較難,雖然我地都一樣有入球數,但足球一場嘅入球數目比較少,而且我搵唔到更加詳細嘅入球數據,例如話係大約邊個位置、距離龍門幾遠、用左定右腳入波之類,而且足球就算我由自己龍門射入對面龍門,都係得一分,如果要 Form 一個足球嘅 WAR,或者要睇重啲其他數據,例如點樣去衡量組織能力。
之前都有提過 Medium 到睇過呢篇文 — WAR 嘅應用,對 WAR 有進一步興趣嘅話,可以睇下佢點樣 Apply 落戰爭到。
之後繼續講,講下投手嘅 WAR。
Pitchers
投手個諗法同其他人,其實差唔多,都係計下佢比平均高 / 低幾多分,再調整同轉換成場數。條式:
WAR = [[([(League “FIP” – “FIP”) / Pitcher Specific Runs Per Win] + Replacement Level) * (IP/9)] * Leverage Multiplier for Relievers] + League Correction
Fielding Independent Pitching
Fielding Independent Pitching(FIP)係 Earned Run Average(EAR)嘅改良版(?)。後者嘅 Earned Run 係數緊比賽入面,對手有幾多分係非防守方失誤下獲得,而 EAR 就係除局數(IP)再乘返 9,個數字愈低,就代表個投手能力愈好,對面愈少分數係因為個投手廢再獲得。前者就係只考慮投手可以控制到嘅幾樣嘢,包括 Home Run、Walks、Hit by Pitches 同 Strikeouts。而 FanGraphs 就再加咗 Infield Fly Balls 落去。
總之成個諗法就係,數下對面有幾多分係因為個投手廢而獲得,不過廢同失誤係兩樣嘢嚟。
之後一堆數值上嘅調整,可以參考: https://www.fangraphs.com/library/war/calculating-war-pitchers/
後記
WAR 最有意思嘅地方係,佢冇用到複雜嘅 Concept,而且好易去解釋同埋比較,所以好值得用呢個數字去解釋比唔熟數學同統計學嘅人聽,點樣去比較唔同球員之間嘅能力差異。
複雜而準確嘅模型當然唔會唔好,但係一嚟睇運動比賽嘅人未必有數學背景,二嚟結果始終係講比人聽,咁 WAR 的確做到呢兩點。當然 WAR 唔係冇缺點,要數就實大把,不過作為運動統計學或者資料分析嘅入門,WAR 的確有佢嘅價值。
下一篇同 Sabermetrics 有關嘅,會係用 WAR 去 Prediction 或者去 Form 一個籃波或者足球嘅 WAR,就姑且試下手上面有嘅嘢可以做到幾多啦。
話時話,上次嗰篇因為見少人睇,改咗個標題之後,真係多咗少少人禁入去睇,叫 Python 101 真係咁唔吸引。
講返轉頭,早幾日係波台望到張 HeatMap,就諗或者可以幫足球射手 Form 一個進攻能力參數,例如將個球場斬開 16 份,再跟據唔同區域平均射入數目,就可以知道佢擅長係邊度射波。成個 Approach 係參考UZR 入面個 RngR,再進一步嘅話,可以套用 wRAA 個諗法,去計返唔同區域射波嘅價值,從而去得出當季進攻評分。
搵返張圖個 Source 嘅時候,就見到其實都幾多下。但都係搵唔到上面張圖個 Source,同埋我想要嘅 Data。
冇 Data 就唯有等到搵到為止再去試下個諗法行唔行得通。就 Data 而言,籃波應該易搵啲。
多謝收看。