BABIPは本当に運を表す指標なのか



Page content



BABIP (Batting Average on Balls In Play)

BABIPは、フェアグラウンド内に飛んだ打球が安打になる確率を表す指標。

$\frac{安打 - 本塁打}{打数 - 奪三振 - 本塁打 + 犠飛}$

BABIPは.300程度に収束するもので、これを大きく上回る/下回る場合、その選手の成績は運によるものである」という使われ方をすることがある。

が、BABIPは運が全てではないことも明言されており、前述は不適切な使い方といえる。

実際に、運以外にも以下の要因が収束を妨げる。


BABIPの収束を阻害する要因

走力

一塁に到達するスピードが速ければ、フェアグラウンド内打球の安打率は上がる。

守備力

守っているチームの守備力が高ければ、フェアグラウンド内に飛んだ打球をアウトにする確率は高くなり、BABIPは低くなる。

守備シフト

打球方向に偏りのある打者の場合、シフトを敷くことでBABIPを低く抑えることができる。

フライ率、ゴロ率

一般的にフライのほうがゴロよりもアウトになりやすいといわれている。そのため、フライ率の多い選手はBABIPが低くなりやすい。

(ただし、統計的には、フライボールのうち本塁打になる割合は一定の範囲に収束する≒フライボール率の多い投手は被本塁打も増える、という考え方もある。※フライボール・レボリューション)

打撃力

当然ながら、強い打球や安打になりやすいコースへの打球を打つ能力の高い選手は、そうでない選手と比べてBABIPが高くなる。


総じて

BABIPはリーグ全体、投手の通算成績といった長い目で見れば.300程度に収束することが多い。

一方、打者に関しては、.300ではなくその選手特有の値に収束しやすい。

なので、「BABIPが.400だから運がいい」のではなく、「10年プレイして平均BABIPが.300の選手が今年は.400だから運がいい」というような見方が正しい。はず。


実装

例によって、以下の記事で取得した個人成績から算出する。

ただし、投手の被犠飛数が取得できなかったため、今回は無視して算出している。

def babip_p(pitcher):
    # denominator = Decimal(pitcher['被打数']) - Decimal(pitcher['奪三振']) - Decimal(
    #     pitcher['被本塁打']) + Decimal(pitcher['犠飛'])
    denominator = Decimal(pitcher['被打数']) - Decimal(pitcher['奪三振']) - Decimal(
        pitcher['被本塁打'])
    if not denominator:
        return '0'
    numerator = Decimal(pitcher['被安打']) - Decimal(pitcher['被本塁打'])
    babip = numerator / denominator
    return str(babip)


def babip_h(hitter):
    denominator = Decimal(hitter['打数']) - Decimal(hitter['三振']) - Decimal(
        hitter['本塁打']) + Decimal(hitter['犠飛'])
    if not denominator:
        return '0'
    numerator = Decimal(hitter['安打']) - Decimal(hitter['本塁打'])
    babip = numerator / denominator
    return str(babip)

最新の成績は以下から閲覧できます。


おわり

フェアグラウンド内に飛んだらあとは運(が絡むから無視)、という考え方がBABIPDIPSに通じている。

ただ、数値化が難しいだけで、強い打球を打つ打者、捉えにくい球を投げる投手、というのは当然ある。Soft%Mid%Hard%といった指標があるが、NPBで個人で取得するのは難しい。




CodeCampGATE
CodeCampGATE