BOS v2.1の係数はどう決まったのか?平均盤面と塁の前進量で打撃結果を数値化する

新しい打撃指標 BOS v2.1 の完成形は、次の式です。
BOS = 1.43 × 四死球率
+ 1.60 × 単打率
+ 3.10 × 二塁打率
+ 4.42 × 三塁打率
+ 5.42 × 本塁打率
選手成績ページにある基本的な数字を拾ってきて、この式に放り込むだけで打者の戦闘力が1つの数字で出る。打率やOPSとは別の角度から、打者の攻撃力を見られる指標です。
四死球は1.43。
単打は1.60。
本塁打は5.42。
この数字はどこから来たのか。
結論から言うと、これらの係数は雰囲気で決めたものではなく、 BOSの思想を素直に数式に落とし込んだ結果 として出てきます。
BOSは「盤面を前に進める力」を見る
BOSでは、打者の戦闘力を、
1打席で、どれだけ盤面を前に進められるか
として考えます。
野球は、塁を進めて、最後に本塁へ帰るスポーツです。だから打者の仕事をかなり単純化すると、
アウトにならずに、打者自身や走者を前の塁へ進めること
になります。
BOS v2.1の係数は、この考え方をそのまま数式に落とし込んだ結果です。「盤面を前に進める」とは何かを定義していけば、係数は自然と決まります。
「盤面を前に進める」を、塁の前進量として数える
「盤面を前に進める力」を数字にするには、 「前に進める」とはどういうことか を決めないといけません。
BOSではこう定義します。
盤面を前に進める = 打者自身と走者を、それぞれ前の塁へ動かす
つまり、 塁の前進量 で測ります。
BOSは、「その打席で何点取ったか」を測る指標ではありません。1点入ったかどうかではなく、 打者と走者を合わせて、塁をどれだけ前に進めたか を見る。
たとえば、走者一塁で単打を打って一二塁になった場面と、走者三塁で単打を打って三塁ランナーが還った場面。BOSではどちらも「塁を2つ分前に進めた」として同じ扱いをします。前者は得点なし、後者は1点入っていますが、BOSにとってはどちらも同じ前進量です。
「得点ではなく塁の前進量」と聞くと違和感があるかもしれませんが、これはBOSが測りたいのが 打者単体の盤面前進力 であって、得点そのものではないからです。得点を重く見たいなら、それは打点や得点期待値といった別のものさしの仕事です。
盤面を比べるために、塁を座標化する
塁の前進量を数えるには、まず塁そのものを数字で表す必要があります。打つ前と打った後を比較するには、両方が同じ単位で表せないと差を取れないからです。
BOSではこう置きます。
一塁 = 1
二塁 = 2
三塁 = 3
本塁 = 4
ここで重要なポイントが一つあります。
本塁の「4」は「4点分の価値」という意味ではありません。
本塁は、一塁・二塁・三塁の次にある「4番目の地点」。つまりこれは 得点価値ではなく、塁上の位置を表す座標 です。一塁から3つ先にあるから 4。それだけです。
この区別が大事です。BOSにとって本塁の「4」は、得点の重みではなく、塁の最後の座標です。だから、得点が入ろうが入るまいが、ランナーが本塁の座標に到達したことを「座標が1つ進んだ」として扱う。
塁を座標化すると、盤面全体の状態も1つの数字で表せます。盤面価値 = いま塁にいるランナーの座標の合計、と決めます。
走者なし → 0
一塁にランナー → 1
一二塁 → 1 + 2 = 3
満塁 → 1 + 2 + 3 = 6
これで、どんな盤面でも1つの数字で表せるようになりました。
1打席の前進量は「打った後 − 打つ前」で出す
盤面が数字で表せるようになると、1打席の前進量はとてもシンプルに定義できます。
1打席の前進量 = 打った後の盤面価値 − 打つ前の盤面価値
引き算1回です。
走者なしのケースで具体的にやってみます。
走者なしで単打:
打つ前 :0
打った後:打者が一塁 = 1
前進量 :+1
走者なしで二塁打:
打つ前 :0
打った後:打者が二塁 = 2
前進量 :+2
走者なしで本塁打:
打つ前 :0
打った後:打者が本塁 = 4
前進量 :+4
単打よりも二塁打、二塁打よりも本塁打のほうが大きく盤面を進めている。感覚にも合います。
なぜ8通りの盤面を考えるのか
走者なしの単打は +1 でした。では、一塁にランナーがいる場面で単打を打つとどうなるでしょうか。
ここでは話をシンプルにするため、 単打 = 全員1つ進む というルールで考えます。
打つ前 :一塁 = 1
打った後:一塁走者は二塁、打者は一塁 → 1 + 2 = 3
前進量 :+2
走者なしの単打は +1。
一塁ランナーありの単打は +2。
同じ単打でも、盤面が違えば前進量も違う。
ということは、「単打の係数」を1つの数字に決めたいなら、ある特定の盤面だけ見ても答えになりません。走者状況をすべて考えて、その平均を取る必要があります。
走者の状況は、組み合わせると次の8通りに整理できます。
走者なし
一塁
二塁
三塁
一二塁
一三塁
二三塁
満塁
BOSでは、この8通りすべてで前進量を計算し、平均を取って係数を出します。
なぜ実際の盤面ではなく平均盤面を使うのか
8通りを平均するとき、どの盤面の出現率を使うかは2つの選択肢があります。
- 選手ごとに、その選手が実際に打席に立った盤面の出現率を使う
- 全打者に、共通の「平均的な盤面」を与える
BOSは後者を選んでいます。理由ははっきりしています。
前者を選ぶと、 打者本人の力ではない要素が混ざってしまう からです。
- 前の打者がよく出塁するチームの打者は、ランナーありで打席が回ってきやすい
- 逆に、前の打者が出塁しないチームの打者は、ランナーなしで回ってきやすい
- 強打者が多い打順なら走者ありの場面が増えるし、弱い打順なら走者なしが増える
BOSが見たいのは、 打者単体の戦闘力 です。「打線の中でどう機能したか」ではなくて、「この打者は単体としてどれくらい強いのか」を見たい。
そこで、誰がどの打順を打っていようと、 全員に同じ平均盤面を与えて評価する という設計にしています。文脈を切り離す代わりに、すべての打者を同じ条件で比べられるようにする、ということです。
v2.1で使う平均盤面
v2.1で使う平均盤面の出現率はこれです。
| 盤面 | 出現率 |
|---|---|
| 走者なし | 56% |
| 一塁 | 20% |
| 二塁 | 7% |
| 三塁 | 3% |
| 一二塁 | 7% |
| 一三塁 | 3% |
| 二三塁 | 2% |
| 満塁 | 2% |
合計100%です。
元データの出現率を、ブログや中継で使いやすいように整数%へ丸めています。
走者なしが56%、一塁が20%、ここで76%。一二塁の7%を入れて83%。だいたいの打席は「走者なしか、一塁か、一二塁」のどれかで起こる、というのが盤面の現実です。満塁は2%で、かなり少ない盤面として扱われます。
単打の平均前進量 1.60 を計算する
単打のルールはシンプルに、
単打 = 全員1つ進む
として扱います。
実際の野球では、二塁走者が単打で本塁まで帰ってくることもあれば、コーチの判断で三塁で止まることもあります。打者本人の走力や、外野手の肩の強さでも結果は変わります。
ただしBOSではまず、選手の走力や外野手の肩などの「打撃結果そのもの以外の要素」を切り離すために、野球盤のように 「全員一律に1つ進む」 と置いておきます。
8通りの盤面それぞれの前進量を計算すると、こうなります。
| 盤面 | 打つ前 | 打った後 | 前進量 |
|---|---|---|---|
| 走者なし | 0 | 一塁=1 | +1 |
| 一塁 | 1 | 一・二塁=1+2=3 | +2 |
| 二塁 | 2 | 一・三塁=1+3=4 | +2 |
| 三塁 | 3 | 一塁+得点=1+4=5 | +2 |
| 一二塁 | 3 | 一・二・三塁=1+2+3=6 | +3 |
| 一三塁 | 4 | 一・二塁+得点=1+2+4=7 | +3 |
| 二三塁 | 5 | 一・三塁+得点=1+3+4=8 | +3 |
| 満塁 | 6 | 一・二・三塁+得点=1+2+3+4=10 | +4 |
たとえば「三塁」の盤面で単打を打つと、三塁走者がホームに帰って得点、打者は一塁へ。打った後の盤面価値は「一塁(1) + 得点(4) = 5」。打つ前の盤面価値が 3 だったので、前進量は +2 です。
満塁で単打を打てば、走者全員が1つ進み、三塁走者は本塁へ、打者は一塁。打った後は「一・二・三塁 + 得点 = 1+2+3+4 = 10」。打つ前は 6 だったので、前進量は +4 です。
この前進量を、平均盤面の出現率で重みをつけて足します。
1 × 0.56 = 0.56 (走者なし)
2 × 0.20 = 0.40 (一塁)
2 × 0.07 = 0.14 (二塁)
2 × 0.03 = 0.06 (三塁)
3 × 0.07 = 0.21 (一二塁)
3 × 0.03 = 0.09 (一三塁)
3 × 0.02 = 0.06 (二三塁)
4 × 0.02 = 0.08 (満塁)
─────────────────
合計 = 1.60
合計が 1.60。
これが、BOS v2.1における 単打の平均前進量、すなわち単打の係数 1.60 です。
電卓があれば、誰でも同じ数字を再現できます。雰囲気で決めた数字ではなく、 「平均的な盤面で単打を打ったときの、平均的な前進量」が 1.60 だから 1.60 、ということです。
二塁打・三塁打・本塁打の平均前進量
二塁打、三塁打、本塁打も、まったく同じやり方で平均前進量を出します。違いは、走者の進み方のルールだけです。
二塁打 = 全員2つ進む
三塁打 = 全員3つ進む
本塁打 = 全員ホームへ帰る
それぞれ8通りの盤面で「打つ前」と「打った後」を出し、前進量を計算し、出現率で重み付き平均する。手順は単打とまったく同じです。
結果として、平均前進量(= 係数)はこうなります。
二塁打 = 3.10
三塁打 = 4.42
本塁打 = 5.42
ここで、 本塁打の 5.42 について少し補足しておきます。
走者なしで本塁打を打ったときの前進量は、座標で +4 でした。「本塁 = 4」だからです。ところが、係数は 5.42。4 を超えています。
これはおかしいことではなくて、平均盤面ではランナーがいる場面もあるからです。一塁にランナーがいて本塁打を打てば、一塁走者の +3(一塁 → 本塁)と打者の +4(打席 → 本塁)で、合計 +7 前進する。満塁本塁打なら、もっと進みます。
走者なしの +4 から、ランナーがいるときの大きな前進量までを平均すると、 本塁打の平均前進量は4を超えて、5.42になる。これが本塁打の係数の意味です。
二塁打 3.10、三塁打 4.42 も同じ理屈で、走者なしのときの基本前進量(+2、+3)に、ランナーを巻き込んだぶんの上乗せが入った結果として出てきます。
四死球の平均前進量 1.43 を計算する
四死球もBOSでは盤面前進力として扱いますが、単打とは走者の動き方が違います。単打は全員1つ進むと置きましたが、 四死球では押し出される走者だけが進みます。
具体的にはこうです。
- 打者は必ず一塁へ行く
- 一塁にランナーがいれば、その走者は二塁へ押し出される
- 一二塁なら、一塁走者は二塁へ、二塁走者は三塁へ、と連鎖的に押し出される
- 満塁なら、三塁走者まで押し出されてホームへ帰る(= 押し出し得点)
- 二塁にだけランナーがいる場面では、一塁が空いているので二塁走者は動かない
この「押し出される場合だけ進む」というルールで8通りを書き出すと、こうなります。
| 盤面 | 打つ前 | 打った後 | 前進量 |
|---|---|---|---|
| 走者なし | 0 | 一塁=1 | +1 |
| 一塁 | 1 | 一・二塁=1+2=3 | +2 |
| 二塁 | 2 | 一・二塁=1+2=3 | +1 |
| 三塁 | 3 | 一・三塁=1+3=4 | +1 |
| 一二塁 | 3 | 満塁=1+2+3=6 | +3 |
| 一三塁 | 4 | 一・二・三塁=1+2+3=6 | +2 |
| 二三塁 | 5 | 一・二・三塁=1+2+3=6 | +1 |
| 満塁 | 6 | 満塁+得点=6+4=10 | +4 |
ここで注目してほしいのは、 同じ「ランナー2人」の盤面でも、四死球の前進量がぜんぜん違う ことです。
- 一二塁 → +3(全員押し出される)
- 一三塁 → +2(一塁ランナーだけ押し出され、三塁ランナーは二塁が空いているので動けない)
- 二三塁 → +1(打者が一塁に入るだけ、二塁・三塁の走者は動かない)
これは本塁打や単打にはなかった、四死球特有の挙動です。
これを出現率で重みをつけて足します。
1 × 0.56 = 0.56 (走者なし)
2 × 0.20 = 0.40 (一塁)
1 × 0.07 = 0.07 (二塁)
1 × 0.03 = 0.03 (三塁)
3 × 0.07 = 0.21 (一二塁)
2 × 0.03 = 0.06 (一三塁)
1 × 0.02 = 0.02 (二三塁)
4 × 0.02 = 0.08 (満塁)
─────────────────
合計 = 1.43
合計が 1.43。
これが、BOS v2.1における 四死球の平均前進量、すなわち四死球の係数 1.43 です。
なぜ四死球(1.43)は単打(1.60)より少し低いのか
四死球の係数 1.43 は、単打の係数 1.60 よりやや低い。「四球も単打も、打者が一塁に出るのは同じじゃないか」と思うかもしれませんが、この差にもちゃんと意味があります。
2つの表を見比べると、
- 走者なし、一塁 の盤面では、四死球も単打も同じだけ盤面を進める(+1、+2)
- ところが、 二塁、三塁、二三塁 の盤面では、単打は +2 や +3 進めるのに対して、四死球は +1 しか進めない
なぜなら、二塁・三塁の走者は押し出されないからです。単打なら走者がそのまま走って大きく盤面が動くのに、四死球だと打者が一塁に入るだけで、二塁・三塁の走者は座って見ている。
その分、平均すると四死球は単打よりも少しだけ低い数字になる。これが、 1.60 と 1.43 の差 の中身です。
1打席あたりの平均前進量としてまとめる
5つの打撃結果の平均前進量はこうなりました。
単打 = 1.60
二塁打 = 3.10
三塁打 = 4.42
本塁打 = 5.42
四死球 = 1.43
これらは、 「平均的な盤面で、その打撃結果が1回起きたとき、平均何個分塁を進めるか」 を表す数字です。
打者の戦闘力を出すには、これに その打者が1打席あたり、それぞれの打撃結果をどのくらいの頻度で起こすか を掛けて足せばいい。
BOS v2.1 = 1.43 × 四死球率
+ 1.60 × 単打率
+ 3.10 × 二塁打率
+ 4.42 × 三塁打率
+ 5.42 × 本塁打率
各「率」の定義はこうです。
四死球率 = 四死球 ÷ 打席数
単打率 = 単打 ÷ 打席数
二塁打率 = 二塁打 ÷ 打席数
三塁打率 = 三塁打 ÷ 打席数
本塁打率 = 本塁打 ÷ 打席数
打席数の定義は、
打席数 = 打数 + 四球 + 死球 + 犠飛
単打と四死球は、選手成績ページの数字から次のように作ります。
単打 = 安打 − 二塁打 − 三塁打 − 本塁打
四死球 = 四球 + 死球
ここで一点だけ補足。 犠打(送りバント)は分母に入れていません。犠打は、打者の攻撃力というよりは作戦上の打席として扱いたいので、BOSの分母からは外しています。「自分の力で結果を出しに行った打席」を分母にしている、ということです。
これで、BOSの思想(打者の戦闘力 = 1打席あたりの盤面前進力)が、計算可能な式として完成しました。
まとめ
BOS v2.1の係数は、雰囲気で置いた数字ではありません。
BOSでは、打者の戦闘力を、
1打席で、どれだけ盤面を前に進められるか
として考えます。
その盤面前進力を数字にするために、塁を座標として扱い、打つ前と打った後の差分を取ります。
同じ打撃結果でも盤面によって前進量は変わるので、走者状況を8通りに分けて考えます。ただし、実際の盤面をそのまま使うと打順や前後の打者の影響が混ざるため、全打者に共通の平均盤面を与えます。
その平均盤面で、各打撃結果がどれだけ塁を前に進めるかを計算すると、
- 四死球:1.43
- 単打:1.60
- 二塁打:3.10
- 三塁打:4.42
- 本塁打:5.42
になります。
この平均前進量に、各打撃結果の発生率を掛けて足したものが BOS v2.1 です。
補足:BOSはこの形に最初からなっていたわけではない
ただし、BOSは最初からこの形だったわけではありません。
最初は 「打席で直接何点入ったか」を数える ところから始めました。ところが、そのやり方には大きな問題がありました。本塁打が単打の16倍以上の価値になってしまい、首位打者クラスの選手すら平均以下に沈んでしまう、というおかしな結果が出てしまったのです。
そこからどう考え直して、いまの BOS v2.1 にたどり着いたのか。その経緯は別記事(BOSの開発記録)にまとめてあるので、興味のある方はそちらもどうぞ。