Tuesday, November 27, 2007

How Real Are These Metrics?

我們可能常聽到類似以下的 comment:

  • Juan Pierre 07 年的 VORP 是 16.2。

  • Nomar Garciaparra 07 年的 OPS_Win 是 -0.831。

  • Luis Gonzales 07 年的 EQA 是 .271、EQR 是 64.9。

話說回來,這幾個 metrics 真正的內涵是什麼?我們可不可以從幾個 metrics 去翻譯球隊所拿下的 real wins?或者這些 metrics 只是虛構且悖離事實的 scale?講得更具體一點:假使我有一支 82-win 的球隊,同時我曉得要進入 playoff 的安全範圍大約要 88 ~ 92 wins,那是否代表在 offseason 裡必須努力為球隊掙得 6+ OPS_Win、60+ VORP 或是 60+ EQR 的 net gain?

利用 offseason 的機會,我們不妨來看看幾個有名的 metrics -- OPS_Win、VORP and EQA -- 的真實性。換句話說,如果一個 GM 要拿這 3 個 metrics 來做為 transaction 的依據,它們所代表的內涵是否就真如數字面上所顯示的一樣?他們 honor 10-run equals 1-win 嗎?這些 metrics 在使用上需要做怎麼樣的轉換?



Approach

首先必須說明的是:我們將借用部份的 WPA 資料來做驗証。

由於 WPA 是將球隊所贏得的勝場分配給每一位球員,一支球隊的打擊、先發投手與後援投手的 WPA 總和會等於該球隊的 wins above average,所以我們直接拿球隊在打擊部份的 total WPA -- say "BWPA" -- 做為與 OPS_Win、VORP 與 EQR 比較的基準,看看這 3 個 metrics 究竟夠不夠 "真實"。

在實做之前,先回答 2 個可能讓人產生懷疑的點:

  • 守備的分數到哪裡去了呢?
    在 WPA 的 scope 下,不論球隊的守備是好是壞,都必須由投手群來 "概括承受",也就是說守備的分數是算在投手群身上的。同時 OPS_Win、VORP 與 EQR 事實上也都沒有包含守備的因子,是故用這 3 個 metrics 與 BWPA 來比較是合適的。

  • Clutch 的因素怎麼處理?
    的確,屬於 neutral metric (接近 10-run equals 1-win) 的 OPS_Win、VORP 與 EQR 都沒有考慮 clutch。只不過對絕大多數球隊來說,經過一季的 long run,clutch hitting 的影響被 neutralize 的可能性是極大的!事實上,clutch 最大的問題會出在 "後援投手" 的環節,和用來做比較基準的 BWPA 與投手群是不相干的。因此 只要 OPS_Win、VORP 與 EQR 夠準確,suppose 不該與 BWPA 有太大的差距。

接下來,我們用 Dodgers 為例來跑一次:First thing first,Dodgers 07 年的 BWPA 是 -4.98 -- and you know how bad these Dodgers performed in 07 season。



OPS_Win on Dodgers' Offense

回顧一下 OPS_Win 的式子:

OPS_Win = 0.025 * (1.7 * OBP + SLG - 1 ) * PA

OPS_Win 誕生的原因在於 SLG 的對 OPS 的膨脹 -- 雖然 OPS 是一個最簡單、最直接評價球員的方式。在 SLG 的 scope 下,把 1 支 HR 的價值當成是 1 支 single 的 4 倍是絕對不合理且不真實的!此外,假設有兩位 OPS 都是 0.800 的選手,一位的 OBP/SLG 是 .300/.500、另一位是 .350/.450,給予相同的 PA 數,他們的 contribution 絕不會一樣。

所以 OPS_Win 調整 OBP 與 SLG 的權重來解決上述的問題,再對 league average 做 offset。而 OPS_Win 的式子也等於告訴大家:一個 league average 的打者,每個 PA 的價值大約是 0.025 runs wins。

計算 OPS_Win 不需要太多技巧:Dodger hitters 在 07 年所賺到的 total OPS_Win 是 -3.72 wins above average



VORP on Dodgers' Offense

由於這裡使用的比較基準是 BWPA -- 是 batting wins above average,但 VORP 的 baseline 不是 league average 而是 replacement level,所以必須先做 baseline 的轉換。

根據 Keith Woolner 的說法,VORP 的基準是 "一支完全由 replacement level 所組成的球隊,一季大約可以拿到 44-win",那麼針對 replacement level 的打者,他的 RC (Runs Created) 大約是 league average 的 78.3%;相對的,replacement level 的投手,其 RA 是 league average 的 127%。

請注意,在這裡我們所有的 replacement level 都是以 BP 的定義為基礎,與 THT 的 WSAB 的 baseline 不同!Just in case you wonder:WSAB 的 baseline 大約是 WPCT 33% 的球隊、VORP 則是 WPCT 27% 的球隊。關於 VORP 的 baseline 的細節,有興趣瞭解的朋友請參考 這一篇

於是我們把 RA 的部份從 replacement level 提高到 league average,運用 Pythagorean Formula (power = 2),考慮一支以 replacement level 的打者league average 的投手 所組成的球隊,一季可以得到的勝率將是:

(0.783^2) / (0.783^2 + 1^2) = 0.380

換算出來就是 162 * 0.38 = 61.56 wins。

由於我們預期一支完全由 league average 所組成的球隊可以拿到 0.5 的 WPCT、或 81-win,而在這支 "average" 的球隊的打者都換成 replacement level 時剩下 61.56-win。換句話說,league average 與 replacement level 的打者所組成的 lineup 一季下來的差距將是:

81 - 61.56 = 19.44 wins

考慮 35 位 07 年登記有案的 Dodger hitters,其 VORP 的總和是 187.1,粗略的以 10-run equals 1-win 來計算就是 18.7 wins above replacement level、或是 -0.73 wins above average (18.71 - 19.44)。



EQR on Dodgers' Offense

原則上,EQR 是一個 "絕對" 的 scale,它完全沒有任何 baseline 的 offset,當我們想將 EQR 轉換成 EQRAA (EQR Above Average) 時,必須借重 EQA 的幫忙。因為 EQA 的催生者 Clay Davenport 說 .260 的 EQA 代表 league average、.230 代表 replacement level。這個 blog 也曾探究過 EQA 的內涵,有興趣瞭解的朋友請參考 這一篇

由於 EQR 與 EQA 有這樣的關係:

EQA = ( 0.2 * EQR / OUT )^0.4

我們可以將 EQR 可以重寫如下:

EQR = ( EQA^2.5 ) * 5 * OUT

考慮 .260 的 EQA 為 league average,EQRAA 就可以寫成:

EQRAA = EQR - [ (.260)^2.5 ] * 5 * OUT

Follow 上述的結果,07 年 35 位 Dodger hitters 的 total EQRAA 是 -6.14、or -0.61-win above average



So, the winner is...?

單由 Dodgers 來看,OPS_Win 的估計似乎是 "最接近事實" 的,不過不可否認的是 OPS_Win 可能是 3 個 metrics 裡最簡單、所用的 baseline (league average) 最直覺的一種,相較於根本不曉得怎麼算出來的 VORP、以及用到整個聯盟資料來 "作弊" 的 EQA 相比 -- 既然不能在 accuracy 上得到 significant edge,使用上的意義與價值也就相對的降低,總的說來,個人以為 OPS_Win 是 3 個 metrics 最有效率的一種。

這裡再給幾個 tips:

  • 對大多數的 teams 而言,OPS_Win、VORP 與 EQR 換算的結果其實都還算接近,而 OPS_Win 的 fluctuation 較其它二者為穩定;同時,我們甚至可以用 BWPA 與 OPS_Win 的差距來做為評價 team batting clutchiness 的 quantity。

  • 07 年受到 "clutch" 影響最大的就屬 D'Backs,即便是打擊方面,保守的估計 D'Backs 的 clutchiness 大概讓他們拿回了 5-win above average,這幾乎相當於把一個 league average 的打者換成 A-Rod 的差距。

  • VORP 針對每一個守備位置 apply 不同的 replacement level,因此帳面數字上和 OPS_Win 相比並沒有太良好的線性關係,不容易從 individual 去探討正確性的問題。

  • 說 EQRAA 與 OPS_Win 的線性關係維持在 0.9 以上的 correlation coefficient 是安全的 (這僅僅代表 EQRAA 與 OPS_Win 的 "方向" 一致),只是 EQR 對 SLG 較高的選手有 "給分過高" 的現象。

個人把 NL West 的計算結果 PO 在這裡做參考:

TeamBWPAOPS_WinVOA/10EQRAA/10
D'Backs-1.21-6.64-7.45-6.04
Rockies9.496.086.863.37
Padres-6.56-6.98-4.590.41
Dodgers-4.98-3.72-0.73-0.61
Giants-10.97-10.27-10.47-7.15

其中 VOA 代表把 VORP 的 baseline 移到 league average 的結果;EQRAA 為 EQR Above Average,除以 10 則代表把 runs 轉換為 wins。

我不敢、也不能說個人証實了這幾個 metrics 的真實性,但希望傳達的是這幾個 metrics 所代表的意義與互相轉換的過程,建議有興趣的朋友動手玩玩看。

※※※※※※※※

Additionally,這裡提一個可能很多用 EQA 的朋友沒有想過的問題:

打者 A 在 07 年用掉 100 outs,得到 EQR 15;打者 B 亦用掉 100 outs,得到 EQR -15,那麼兩人的 EQA 分別是多少?

要計算 A 的 EQA 沒有問題:

EQA_A = ( 0.2 * EQR_A / outs_A )^0.4 = 0.246
Where EQR_A = 15, outs_A = 100

然後,當我們如法泡製的想要計算 B 的 EQA 時,不管用 Excel 也好、工程計算機也好,得到的結果都是 "Error",why?其實,這只是國中生程度的問題,在做 power 運算的 caveat:"Negative number to fractional power is an illegal call"!

即便如此,就 EQR 的 derivation 而言,它的確可能跑出 "負值",針對這樣的球員,他們的 EQA 又應該如何計算呢?Clay Davenport 雖然沒有明講,但他的結果是這樣弄出來的:

  • 如果某球員的 EQR 計算出來是 "負值" (小於 0),那麼就先把它變成 "正值",套用數學的講法 -- 取 "絕對值"。

  • 計算出 EQA 之後,再把 "負號" 加回去。

所以在上述的命題裡,B 的 EQA 就是 -0.246。然而,這是完全合理的,我們可以從下面這個式子來看 (EQAR: EQA Rate):

EQR = EQAR * OUT
Where EQAR = ( EQA^2.5 ) * 5

EQA 其實就 "很像是" 某位打者 "每個 out 的價值 (分數)",那麼如果 EQR 已經小於 0,EQA 當然也應該要小於 0。話說回來,除了投手以外,能夠得到 negative EQA 的打者恐怕也不多。

6 comments:

Anonymous said...

Morikawa大:
"OPS_Win = 0.025 * (1.7 * OBP + SLG - 1 ) * PA
所以 OPS_Win 調整 OBP 與 SLG 的權重來解決上述的問題,再對 league average 做 offset。而 OPS_Win 的式子也等於告訴大家:一個 league average 的打者,每個 PA 的價值大約是 0.025 runs。"

如果是offset 不是應該寫成"OPS_Win = 0.025 + (1.7 * OBP + SLG - 1 ) * PA" 搞糊塗了....

gotribeyang said...

Hi Morikawa:

文章內實用內容很多,要細細咀嚼所以暫時沒意見。

我留言是因為想問你有沒有意願在 blog 裡面弄個 search bar?這樣用關鍵字找你先前的文章會比較方便,我自己是有這個需求,其他人的看法就不知道了。

Morikawa said...

Spoli,

Sorry,我筆誤了!league average 的打者一個 PA 的價值不是 0.025 runs,而是 0.025 wins

我們先這樣看:

A = ( 1.7 * OBP + SLG )
B = 0.025 * A

那麼 OPS_Win 就可寫成如下:

( B - 0.025 ) * PA

這裡的 ( B - 0.025 ) 就代表一個球員與 league average 的球員 "每個 PA 的 wins differential",乘上 PA 後當然就是 (batting) wins above average。

所以 offset 的部份其實是那個 (-1)。

------

GoTribeYang,

是像 "The One" 的右上角的那個東西吧?我考慮一下。

如果是 07 年一系列關於數字的東西,我應該都放在 "sabermetrics" 這個標籤下了,比較要緊的 -- 像 EQA、VORP、Baseline 等等應該還不難找吧?畢竟也沒那麼多篇。

gotribeyang said...

Hi Morikwa:

你方便就好,我其實都可以;或者若有多一點跟你反應相同的事,再決定即可。

Anonymous said...

老大:

我覺得這篇文章太深了, 對於沒有特別去鑽這些數字的人讀起來應該像天書吧?

Morikawa said...

也許吧?個人覺得比較技巧的地方在於 baseline 的轉換,其它的部份應該還好。畢竟玩數字的人,對於不知道由來或用法不明的東西,要感到舒服是不容易的。