iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0

Day 08 - FanGraphs 進階數據解釋 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw) 我們有介紹 WAR 是甚麼跟 FanGraphs 是如何計算他們的 WAR 值得,今天會來介紹 Baseball Reference 怎麼算它們的 WAR 值跟 pybaseball 是如何獲得相關資料。

bWAR

Baseball Reference 使用的 WAR 會跟 FanGraphs 的 WAR 作區別,BR 的會叫做 bWARrWAR,FanGraphs 的會叫做 fWAR。他們在野手跟投手的計算都有部分的差別,選用的數據也有些不一樣,接下來會根據位置作介紹。

野手

在算 Batting Runs 的時候 FanGraphs 使用 wOBA,但 BR 自己又另外算了自己的 rOBA,主要的差異是 rOBA 會區分內野安打跟打到外野的安打,分配不同的權重。另外還有打進場內的出局跟三振出局也會被分出來。以及投手打擊的部分會被過濾掉,讓打擊成績計算會比原本的還要高。

跑壘方面 BR 會多考慮 ROE (Reached on Error Runs) 也就是失誤造成的上壘或得分。

可以看 BR 官方文件的介紹:

wRAA For Position Player WAR Explained | Baseball-Reference.com

野手防守部分,跟 FanGraphs 考慮 UZR 不一樣,BR 考慮的是 DRS (Defnesive Runs Saved),比較大的差異是在 DRS 在同時多位野手有守備機會的時候的獎懲會比較大,所以守備範圍小的選手可能就會比較吃虧,可以從這篇文章看更多詳情:

Stat To The Future: UZR, the DRS cousin you didn't know that stats had | Sporting News

投手

FanGraphs 使用他們計算的 FIP,而 BR 是用他們根據當年守備情況調整的失分 xRA,其他像是球場效應他們都會一起考慮。關於 FanGraphs 使用的數據介紹可以參考我之前的這篇:
https://ithelp.ithome.com.tw/articles/10320879

FanGraphs 自己也有整理一篇他們的差異,也可以參考看看:

fWAR, rWAR, and WARP | Sabermetrics Library (fangraphs.com)

bwar_bat

獲得打擊的 WAR 歷史資料,會從 1871 到今年的所有球員 WAR 資料,目前總共會有 121577 筆資料。資料主要是從 [http://www.baseball-reference.com/data/war_daily_bat.txt](http://www.baseball-reference.com/data/war_daily_pitch.txt) 這個檔案獲得。有一個參數可以使用:

  • return_all:布林值,預設值是 False,如果設成 True 會多很多其他欄位,不過主要是用來計算 WAR 的資料,所以愈設是關起來的。

範例:

from pybaseball import bwar_bat

# 獲得所有打擊 WAR 資料
data = bwar_bat()

# 用 WAR 做排序,預設是用 name_common 裡的 Last Name 做排序
data.sort_values(by=['WAR'], ascending=False)

回傳資料:

bwar_pitch

獲得投球的 WAR 歷史資料,資料從 http://www.baseball-reference.com/data/war_daily_pitch.txt 獲得,目前有 54845 筆資料,跟前一個 function 一樣只有一個參數可以使用:

  • return_all:布林值,預設值是 False,如果設成 True 會多很多其他欄位,不過主要是用來計算 WAR 的資料,所以愈設是關起來的。

範例:

from pybaseball import bwar_pitch

# 獲得所有投球 WAR 資料
data = bwar_pitch()

# 用 WAR 做排序,預設是用 name_common 裡的 Last Name 做排序
data.sort_values(by=['year_ID'], ascending=False)

回傳資料:

本日小結

今天介紹了 pybaseball 用來獲得 Baseball Reference WAR 資料的 functions,也藉此機會介紹了一下 BR 是怎麼算他們的 WAR 跟他們與 FanGraph 的差異,感謝大家耐心地看完。明天會介紹 BR 的其他進階數據,其實前面已經介紹很多 functions 回傳的數據,所以我可能會再多介紹 BR 裡可以搜尋到的進階數據。

本日程式碼:
https://colab.research.google.com/drive/1pYXJEWZ28Ll8CDhEdU7UsJ3yTMeltMVf?usp=sharing


上一篇
Day 19 - Baseball Reference 投球篇
下一篇
Day 21 - Baseball Reference 進階數據解釋
系列文
Python 棒球數據分析套件 pybaseball 介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言