[討論] RC/27 模擬 (CPBL 2017 球季)

看板Sabermetrics作者時間6年前 (2018/05/06 03:17), 編輯推噓9(9012)
留言21則, 9人參與, 6年前最新討論串1/1
去年就應該做了,只是一直很懶拖到現在。 其實有點過時了,畢竟2018球季已在進行。 有興趣就看一下吧,有什麼想法也歡迎討論。 -----------------------分隔線----------------------- 前言 在Sabermetrics中,有一個衡量打者能力的公式稱做 RC/27, 其意義為:假設一個球隊的打線中全部是某位固定的打者,則 該球隊在每27個出局數中得到的分數。雖然以現在來說並不算 新的觀念,但筆者讀到當下,還是想證明一番。但此公式並不 像多數理的公式可以推導,而是經由分析大量數據後所歸納而 得。那有什麼方式呢?或許最好的方法就是使用模擬 (simulation):先輸入數據及模型假設,再由電腦去重覆執 行一定的次數後得到的統計值。以下就是關於模擬的結果及分 析。 數據來源 筆者在去年已經記下了中華職棒2017球季的所有攻守記錄,共 計19,052 個打席,並將擊球結果分為以下34種: 左內安、中內安、右內安、左一安、中一安、右一安、左二安 、中二安、右二安、左三安、中三安、右三安、左全、中全、 右全、本飛、投飛、一飛、二飛、三飛、游飛、左飛、中飛、 右飛、投滾、本滾、一滾、二滾、三滾、游滾、三振、妨礙、 四壞、觸身 記錄來源與順位如下: 1. 筆者觀看直播時的逐筆記錄(僅約10場比賽) 2. CPBL官網的Play-by-Play (絕大部份來源) 3. PTT各隊板文字轉播記錄(主場球隊) 4. PTT各隊板文字轉播記錄(客場球隊) 5. 若上述方式均無法判定,則至CPBLTV調閱VOD 模型假設 針對比賽進行的模型假設如下: 1. 不考慮失誤的情形,即防守方的守備率均為100% 2. 不考慮額外進壘卻造成出局之情形,即任何安打均有推進或 得分,但無出局 3. 無和局,無因雨裁定,即一旦比賽開始,就至少打九局,多 至分出勝負為止 4. 所有內野安打均無額外進壘,即所有跑者均只往前推進一個 壘包 5. 擊球至右外野的一壘安打: i. 二壘跑者有75%的機率回本壘 ii. 若一壘跑者通過二壘時,三壘無人或三壘跑者開始往本 壘跑,則一壘跑者有50%的機率進佔三壘 6. 擊球至右外野的二壘安打: i. 若為無或一出局,則一壘跑者有50%之機率回本壘 ii. 若為二出局,則一壘跑者有90%之機率回本壘 7. 內野飛球:所有打者均無法推進 8. 右外野飛球: i. 打者出局後,若出局數為二(含)以下且三壘有人,則三壘 跑者有90%之機率回本壘 ii. 打者出局後,若出局數為二(含)以下且二壘有人,則在三 壘無人若三壘跑者開始往本壘跑時,二壘跑者有50%之機率 上三壘 9. 所有內野滾地球,在可製造x-4-3雙殺之條件下均形成所對應之 雙殺,否則則為打者出局。 10.其餘均照棒球規則 模擬結果 針對中華職棒各隊的主力選手,進行200場賽事的模擬後取平均每場 得分,所的結果稱為RC/27模擬值,並與RC/27公式值做比較如 Table 1所示。 Table 1: 選定球員根據2017球季表現所得的RC/27公式值與RC/27模擬值 球員姓名 RC/27公式值 RC/27模擬值 王柏融 14.60 11.620 詹子賢 10.07 7.420 蘇智傑 10.05 7.705 陳傑憲 9.80 6.905 陳子豪 9.65 8.005 朱育賢 9.13 7.550 林益全 9.00 6.880 潘武雄 8.62 6.495 蔣智賢 8.39 6.510 張志豪 8.10 7.190 陳品捷 7.87 5.795 林泓育 7.40 5.925 林智勝 7.29 6.205 胡金龍 7.15 5.690 陳鏞基 6.25 4.145 曾陶鎔 5.97 5.845 林哲瑄 5.38 4.480 潘萣翔 5.09 3.465 李宗賢 4.58 3.515 唐肇廷 4.37 3.075 林智平 3.67 2.455 余德龍 3.39 2.215 林琨笙 1.83 0.990 劉時豪 1.78 1.380 若將兩者之間的關係做回歸,則可得到RC/27公式值與RC/27模 擬值的關係如下: (RC/27 公式值) = 1.1869*(RC/27 模擬值) + 0.5579 R^2 = 0.9629 討論 R^2=0.9629顯示RC/27公式值與RC/27模擬值之間的相關非常緊 密,但由回歸直線的斜率m=1.1869來看,兩者之間並非完全 1:1的轉換,而是公式值會比模擬值稍高約20%。推測可能的原 因如下: 1. 模型假設與事實偏離:上述模型雖已較簡單模型(直接以壘 打數 = 壘包推進數)更接近真實比賽之情形,但仍有些許 因素未考慮。可能的例子為:在無出局滿壘狀態下,三壘手 接獲強勁滾地球有非常大的機率策動5-2-3的雙殺而非5-4-3 的雙殺。又上述很多額外進壘機率為筆者自由心證而非統計 值。但筆者認為,這些未考慮的因素相互之間可能抵消,應 不至為造成誤差的主要因素。 2. 公式值的意義與模擬值不同:RC/27公式值的意義是:每27 個出局中可創造的分數,換言之相連的出局數之間是有承接 性的關係。但在真實的棒球比賽中,當每局的第三個出局數 出現時,壘包情況就會歸零重設。而模擬所採用的正好就是 每局重設,在經過長局數的比賽進行後,差距會趨於明顯。 惟因為每個球員都是使用相同的條件,兩者之間雖有偏差 (Deviation)但仍趨於一致(Consistency)。 3. 模擬程式編碼出錯:這就是筆者的問題了,也不是沒可能,   但在此先不究。 結語 Bill James確實是偉大的Sabermetrics先趨者,尤其當年可用 的數據分析工具遠不如現在,卻已可以發展出相實用的回歸公 式,一方面讓球探在挑選人才時有足夠的武器,另一方面也增 加看球的樂趣。隨時間的演進,現今的Sabermetrics已又更進 一步(像是用Win Share的進階版WAR),但最初的原始模型, 仍有方計算簡單的方便性,在不大幅度影響分析結果的情況下 仍然相當實用。上述的模擬僅供參考,就像筆者以前說的,餘 其計較一分兩分,或許當個沒有棒球吃不下飯睡不覺著甚至是 活不下去的棒球痴棒球狂容易得多吧! 同場加映1: 棒次對得分的影響 既然模擬程式都寫了,就要好好利用一下。棒球場上最讓人討 論得津津樂道但也最具爭議的,就是棒次的安排。Bill James 曾經表示過:打線的安排對分數的影響其實沒有想像中來得大 。為了證明,筆者也同樣進行了模擬:分別在打線中安排了5 個王柏融及4個林智平,並找出7種棒次安排方式分別模擬200 場後取平均得分,並推算整個球季(120場季賽)完成時的 可能得分值,結果如Table 2所示: Table 2: 5個王柏融及4個林智平在不同棒次下的得分情形 王柏融棒次 林智平棒次 得分/場 得分/120場 1 2 3 4 5 6 7 8 9 6.495 779.4 5 6 7 8 9 1 2 3 4 6.135 736.2 1 3 5 7 9 2 4 6 8 6.645 797.4 2 4 6 8 9 1 3 5 7 6.090 730.8 3 4 7 8 9 1 2 5 6 5.880 705.6 1 2 5 6 9 3 4 7 8 6.185 742.2 1 5 6 8 9 2 3 4 7 6.300 756.0 由Table 2 可以看出,場均得分的最大與最小值為6.645 – 5.880 = 0.765分,換算到整個球季120場比賽,差距則為91.8 分。差距是大是小就各人看法。 同場加映2: 模擬季賽 同上,但這回換成將各隊的主要選手排入打線,並進行各隊間 交手40次的季賽。各隊的打線設定如下: Table 3 各隊主力打線(模擬季賽用) 棒次 Lamigo 中信兄弟 統一7-11 富邦悍將 1 陽耀勳 陳子豪 陳傑憲 胡金龍 2 藍寅倫 張志豪 唐肇廷 陳品捷 3 王柏融 彭政閔 潘武雄 林哲瑄 4 林泓育 林智勝 蘇智傑 林益全 5 朱育賢 蔣智賢 陳鏞基 高國麟 6 陳俊秀 王勝偉 高國慶 張建銘 7 郭嚴文 周思齊 朱元勤 高孝儀 8 黃浩然 詹子賢 郭峻偉 方克偉 9 林智平 黃鈞聲 林志祥 李宗賢 完成模擬之後的結果如下: Table 4 由Table 3之打線模擬球季賽之結果 G W L WPCT Lamigo 中信兄弟 統一7-11 富邦悍將 Runs R/G Lamigo 120 66 54 .550 - 23-17 19-21 24-16 739 6.158 中信兄弟 120 61 59 .508 17-23 - 24-16 20-20 639 5.325 統一7-11 120 59 61 .492 21-19 16-24 - 22-18 622 5.183 富邦悍將 120 54 66 .450 16-24 20-20 18-22 - 592 4.933 可以發現排名大致符合預期,惟勝場數與實際結果相差甚大, 可能的原因如下: 1. 模擬為用同一組人進行全部的比賽,但實際上球季漫長, 一定會有需要輪休或傷兵的情形,此時就要考驗板凳深度。 2. 就……大家所知道的五虎將事件。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.149.136 ※ 文章網址: https://www.ptt.cc/bbs/Sabermetrics/M.1525547863.A.FDE.html

05/06 14:56, 6年前 , 1F
好奇記錄所有打席花了多少時間
05/06 14:56, 1F

05/06 19:33, 6年前 , 2F
有趣 推一個!
05/06 19:33, 2F

05/07 00:22, 6年前 , 3F
回一樓,就隨著去年球季的進行一場一場記,因此花了七個月
05/07 00:22, 3F

05/07 00:25, 6年前 , 4F
其實我本來想把完整的記錄放上來,想說記這麼多數據沒有讓
05/07 00:25, 4F

05/07 00:26, 6年前 , 5F
好好利用實在有點可惜,因為我的能力的確不足。
05/07 00:26, 5F

05/07 00:26, 6年前 , 6F
但我發現PTT的排版限制導制資料放不下.
05/07 00:26, 6F

05/07 01:32, 6年前 , 7F
.9629 會不會可能overfitting
05/07 01:32, 7F

05/07 02:28, 6年前 , 8F
我想應該是不至於,因為我並沒有額外多加其它參數。但也不
05/07 02:28, 8F

05/07 02:29, 6年前 , 9F
是非常確定。
05/07 02:29, 9F

05/10 13:19, 6年前 , 10F
05/10 13:19, 10F

05/15 23:24, 6年前 , 11F
我曾經想把中職的play-by-play用程式半手動轉成程式化資料
05/15 23:24, 11F

05/15 23:26, 6年前 , 12F
存到DB中 不過官網的play-by-play真的錯誤太多 再加上刪得
05/15 23:26, 12F

05/15 23:26, 6年前 , 13F
得很快 所以就放棄了
05/15 23:26, 13F

05/16 15:11, 6年前 , 14F
沒錯真的錯誤很多,所以我每次記錄完都要再對一次Boxscore
05/16 15:11, 14F

05/16 15:13, 6年前 , 15F
,然後每週日比賽結束後都要對一下總數。只能說我竟然記完
05/16 15:13, 15F

05/16 15:14, 6年前 , 16F
了,但我今年就沒再繼續記了,太費工。
05/16 15:14, 16F

05/16 15:15, 6年前 , 17F
我有空時再研究一下有什麼排版方式放上來。
05/16 15:15, 17F

05/20 20:29, 6年前 , 18F
推一個 手動紀錄太有心
05/20 20:29, 18F

05/27 07:47, 6年前 , 19F
這!!!!
05/27 07:47, 19F

06/01 00:07, 6年前 , 20F
這個真的要推一下
06/01 00:07, 20F

10/24 23:14, 6年前 , 21F
膜拜
10/24 23:14, 21F
文章代碼(AID): #1QxWDN_U (Sabermetrics)
文章代碼(AID): #1QxWDN_U (Sabermetrics)