数学
2026.05.21

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の思想を素直に数式に落とし込んだ結果 として出てきます。

01

BOSは「盤面を前に進める力」を見る

BOSでは、打者の戦闘力を、

1打席で、どれだけ盤面を前に進められるか

として考えます。

野球は、塁を進めて、最後に本塁へ帰るスポーツです。だから打者の仕事をかなり単純化すると、

アウトにならずに、打者自身や走者を前の塁へ進めること

になります。

BOS v2.1の係数は、この考え方をそのまま数式に落とし込んだ結果です。「盤面を前に進める」とは何かを定義していけば、係数は自然と決まります。

02

「盤面を前に進める」を、塁の前進量として数える

「盤面を前に進める力」を数字にするには、 「前に進める」とはどういうことか を決めないといけません。

BOSではこう定義します。

盤面を前に進める = 打者自身と走者を、それぞれ前の塁へ動かす

つまり、 塁の前進量 で測ります。

BOSは、「その打席で何点取ったか」を測る指標ではありません。1点入ったかどうかではなく、 打者と走者を合わせて、塁をどれだけ前に進めたか を見る。

たとえば、走者一塁で単打を打って一二塁になった場面と、走者三塁で単打を打って三塁ランナーが還った場面。BOSではどちらも「塁を2つ分前に進めた」として同じ扱いをします。前者は得点なし、後者は1点入っていますが、BOSにとってはどちらも同じ前進量です。

「得点ではなく塁の前進量」と聞くと違和感があるかもしれませんが、これはBOSが測りたいのが 打者単体の盤面前進力 であって、得点そのものではないからです。得点を重く見たいなら、それは打点や得点期待値といった別のものさしの仕事です。

03

盤面を比べるために、塁を座標化する

塁の前進量を数えるには、まず塁そのものを数字で表す必要があります。打つ前と打った後を比較するには、両方が同じ単位で表せないと差を取れないからです。

BOSではこう置きます。

一塁 = 1
二塁 = 2
三塁 = 3
本塁 = 4

ここで重要なポイントが一つあります。

本塁の「4」は「4点分の価値」という意味ではありません。

本塁は、一塁・二塁・三塁の次にある「4番目の地点」。つまりこれは 得点価値ではなく、塁上の位置を表す座標 です。一塁から3つ先にあるから 4。それだけです。

この区別が大事です。BOSにとって本塁の「4」は、得点の重みではなく、塁の最後の座標です。だから、得点が入ろうが入るまいが、ランナーが本塁の座標に到達したことを「座標が1つ進んだ」として扱う。

塁を座標化すると、盤面全体の状態も1つの数字で表せます。盤面価値 = いま塁にいるランナーの座標の合計、と決めます。

走者なし         → 0
一塁にランナー   → 1
一二塁           → 1 + 2 = 3
満塁             → 1 + 2 + 3 = 6

これで、どんな盤面でも1つの数字で表せるようになりました。

04

1打席の前進量は「打った後 − 打つ前」で出す

盤面が数字で表せるようになると、1打席の前進量はとてもシンプルに定義できます。

1打席の前進量 = 打った後の盤面価値 − 打つ前の盤面価値

引き算1回です。

走者なしのケースで具体的にやってみます。

走者なしで単打:

打つ前 :0
打った後:打者が一塁 = 1
前進量 :+1

走者なしで二塁打:

打つ前 :0
打った後:打者が二塁 = 2
前進量 :+2

走者なしで本塁打:

打つ前 :0
打った後:打者が本塁 = 4
前進量 :+4

単打よりも二塁打、二塁打よりも本塁打のほうが大きく盤面を進めている。感覚にも合います。

05

なぜ8通りの盤面を考えるのか

走者なしの単打は +1 でした。では、一塁にランナーがいる場面で単打を打つとどうなるでしょうか。

ここでは話をシンプルにするため、 単打 = 全員1つ進む というルールで考えます。

打つ前 :一塁 = 1
打った後:一塁走者は二塁、打者は一塁 → 1 + 2 = 3
前進量 :+2

走者なしの単打は +1。
一塁ランナーありの単打は +2。

同じ単打でも、盤面が違えば前進量も違う。

ということは、「単打の係数」を1つの数字に決めたいなら、ある特定の盤面だけ見ても答えになりません。走者状況をすべて考えて、その平均を取る必要があります。

走者の状況は、組み合わせると次の8通りに整理できます。

走者なし
一塁
二塁
三塁
一二塁
一三塁
二三塁
満塁

BOSでは、この8通りすべてで前進量を計算し、平均を取って係数を出します。

06

なぜ実際の盤面ではなく平均盤面を使うのか

8通りを平均するとき、どの盤面の出現率を使うかは2つの選択肢があります。

  • 選手ごとに、その選手が実際に打席に立った盤面の出現率を使う
  • 全打者に、共通の「平均的な盤面」を与える

BOSは後者を選んでいます。理由ははっきりしています。

前者を選ぶと、 打者本人の力ではない要素が混ざってしまう からです。

  • 前の打者がよく出塁するチームの打者は、ランナーありで打席が回ってきやすい
  • 逆に、前の打者が出塁しないチームの打者は、ランナーなしで回ってきやすい
  • 強打者が多い打順なら走者ありの場面が増えるし、弱い打順なら走者なしが増える

BOSが見たいのは、 打者単体の戦闘力 です。「打線の中でどう機能したか」ではなくて、「この打者は単体としてどれくらい強いのか」を見たい。

そこで、誰がどの打順を打っていようと、 全員に同じ平均盤面を与えて評価する という設計にしています。文脈を切り離す代わりに、すべての打者を同じ条件で比べられるようにする、ということです。

07

v2.1で使う平均盤面

v2.1で使う平均盤面の出現率はこれです。

盤面出現率
走者なし56%
一塁20%
二塁7%
三塁3%
一二塁7%
一三塁3%
二三塁2%
満塁2%

合計100%です。

元データの出現率を、ブログや中継で使いやすいように整数%へ丸めています。

走者なしが56%、一塁が20%、ここで76%。一二塁の7%を入れて83%。だいたいの打席は「走者なしか、一塁か、一二塁」のどれかで起こる、というのが盤面の現実です。満塁は2%で、かなり少ない盤面として扱われます。

08

単打の平均前進量 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 、ということです。

09

二塁打・三塁打・本塁打の平均前進量

二塁打、三塁打、本塁打も、まったく同じやり方で平均前進量を出します。違いは、走者の進み方のルールだけです。

二塁打 = 全員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)に、ランナーを巻き込んだぶんの上乗せが入った結果として出てきます。

10

四死球の平均前進量 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 の差 の中身です。

11

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打席あたりの盤面前進力)が、計算可能な式として完成しました。

12

補足:BOSはこの形に最初からなっていたわけではない

ただし、BOSは最初からこの形だったわけではありません。

最初は 「打席で直接何点入ったか」を数える ところから始めました。ところが、そのやり方には大きな問題がありました。本塁打が単打の16倍以上の価値になってしまい、首位打者クラスの選手すら平均以下に沈んでしまう、というおかしな結果が出てしまったのです。

そこからどう考え直して、いまの BOS v2.1 にたどり着いたのか。その経緯は別記事(BOSの開発記録)にまとめてあるので、興味のある方はそちらもどうぞ。