BABIP (Batting Average on Balls put Into Play)的公式為:
BABIP = (H-HR)/(AB-SO-HR+SF)
在中職官方所提供的打者統計數字中 AB, H, HR, SO, SF 這些數字都可以輕易的到手;但在投手的統計表格中並沒有提供面對打數(AB)和被高飛犧牲打(SF)的數字。
最直觀解決問題的方法就是從box中直接把這兩個數字拉出來,但這麼做是很沒效率的。
計算AB雖然只需統計出犧牲觸擊(SH)、高發犧牲打(SF)後用減法就能算出,但要統計出這兩個數字就必需要去翻文字轉播並比對投球局數才算得出來。這不是簡單的字串比對程式算得出來的。更別說要要整理一季最少要打開240場以上的 box,加上職棒早期文字轉播資料很不完整,這種方法的問題太多了。
第二種方法就是從 BABIP 的定義下去拆
BABIP的簡單中文翻譯:場內被安打率,被打到場內的球有多少比率會變成安打
而被打到場內的球除了安打外還會有什麼結果? Ans:滾地出局、高飛出局。
換句話說我們可以把BABIP的分母改成(GO+FO+H-HR)
,但用這個公式(H-HR)/(GO+FO+H-HR)
算出來的聯盟BABIP仍會和打擊版本的有誤差(通常約少了0.005)。理由是在中職投手的統計數字中SH被計入了GO,但在打擊統計並沒有這麼算。
通常在下達犧牲推進戰術時也幾乎沒在管對方投手是誰,可以假設每個投手在同BF數(面對打者數)被SH的機率是一樣的,這樣我們可以從打擊那邊算出SH比率:SH% = SH/PA
。
BF*SH% = 估計SH量
套到我們改量後的公式就變成(H-HR)/(GO+FO+H-HR-BF*SH%)
,正常來說整季SH佔PA的比率大約1%,即使不作這個修正BABIP也不會誤差太大就是了。
然後還有在中職的GO, FO統計上回推AB有可能會是對不起來的,用公式來說:GO+FO+H+SO
不等於AB+SF
(in打擊統計數字),前者好像會比較大,一整季下來可能會多個10左右,不過對於上面公式來說誤差已經小於0.001,可以不用理會這個誤差。