ベイズ推定とMAP推定の違いを高校野球の勝率予測でわかりやすく解説

2023年10月17日

2030年夏の甲子園、PL学園が圧倒的な強さで春夏連覇しました。

しかし優勝メンバーは3年生オンリーだったため、秋からの新チームではレギュラー陣ががらりと入れ替わりました。

新チームになってからの成績は、練習試合と公式戦を含めて4勝1敗です。

次の試合のPL学園の勝率はいくつと予想できるでしょうか?

(ここで言う勝率とは神が決めた勝率で、実際の勝ち負けはその勝率により確率的に決まります)

 

事前確率を確率分布で表すことができるベータ分布

ベータ分布に二項分布を掛けるとベータ分布になる

前回のプロ野球の例(最尤推定とMAP推定【プロ野球から学ぶ】)との違いは、新チームのメンバーが入れ替わったので、過去の成績が参考にならないことです。

MAP推定では昨年の成績(事前確率)を考慮して勝率の推定をしましたが、それが使えません。

しかし天下のPLですから、並みのチームよりは強いと考えられます。

そこで勝率2/3を頂点とする釣鐘状の分布を事前確率としたいと考えます。

 

そのために次式で表されるベータ分布を使います。

1 / B(a,b) ×pa-1×(1-p)b-1

 

このベータ分布を使うメリットは2つあります。

1つめは、ベータ分布に二項分布の式

nCk×pk×(1-p)(n-k)

を掛けると計算が簡単で、計算結果もまたベータ分布になることです。

【千葉ロッテ荻野で学ぶ】二項分布で打率から安打数を予測できるか試してみた

 

1 / B(a,b) ×pa-1×(1-p)b-1×nCk×pk×(1-p)(n-k)

=A×pa-1+k×(1-p)b-1+n-k(Aは定数)

となり、計算結果もベータ分布となります。

 

ベータ分布でいろいろな確信度を表現できる

2つめは、abを変えることで、いろいろな確率をいろいろな確信度と共に定義できることです。

例えば次のような感じです。

 

a=1、b=1の場合(全く見当が付かない場合)

 

a=3、b=2の場合(なんとなく勝率2/3と予想する場合)

 

a=11、b=6の場合(ある程度の確信をもって勝率2/3を予想する場合)

 

今回は、なんとなく勝率2/3くらいかなと思うので、a=3、b=2のベータ分布を事前確率とします。

なお、ベータ分布はこのような二項分布の事前分布としての使い方以外にも、便利な使い方ができます。

こちらで解説していますので、よろしければ参照してみて下さい。

【同じ打率でも確実性は違う】ベータ分布を使って成功確率を確率分布で比較

 

MAP推定は事後確率を点で予測する

それではまず、このベータ分布を事前確率に使って、前回やったMAP推定でPL学園の勝率を予測してみましょう。

a=3、b=2のベータ分布で事前確率は次式のように表せます。

事前分布=1 / B(3,2) ×p2×(1-p)1

 

尤度は4勝1敗ですので、二項分布を使って次のように表せます。

尤度=5C4×p4×(1-p)(5-4)

 

これらを掛け合わせることにより、事後確率は次のように計算できます。

事後確率=事前確率×尤度

1 / B(3,2) ×p2×(1-p)1×5C4×p4×(1-p)(5-4)

A×p6×(1-p)2(Aは定数)

 

事後確率はp=k/nの時に最大値を取りますので、6/8=0.75となり、PL学園が次の試合に勝つ勝率は75%と予測できます。

 

ベイズ推定は事後確率を確率分布で予測する

このようにMAP推定では勝率75%と予測できましたが、どのくらいの確信度で予測しているのかまでは分かりません。

これも含めて予測するのがベイズ推定です。

 

計算の仕方はMAP推定と似ています。

MAP推定では次のように計算しました。

 

事後確率=事前確率×尤度

1 / B(3,2) ×p2×(1-p)1×5C4×p4×(1-p)(5-4)

A×p6×(1-p)2(Aは定数)

 

3行目で1 / B(3,2) ×5C4を定数Aにまとめていますが、ベイズ推定ではこれを真面目に計算します。

計算すると次のようになります。

1 / B(3,2) ×5C4=(3+2-1)!/(3-1)!(2-1)!×5!/(5-4)!4!=60

よって、事後確率は次式のようになります。

事後確率=60p6(1-p)2

 

これをグラフに描くと次のようになります。

 

75%が一番ありえそうな勝率で、50%90%も確率は低いけどもありえそうなことが読み取れます。

90%の確信をもって勝率何%以上というような予測を求めたい時には、累積確率分布にします。

累積確率分布のグラフは次のようになります。

 

このグラフから、勝率50%以下になる確率は10%以下しかないということが読み取れます。

従って、PL学園が次の試合に勝つ勝率は、90%の確信をもって50%以上ということが言えます。

 

まとめ

このようにベイズ推定では予測の確信度まで分かります。

MAP推定は平均だけ点推定するのに対し、ベイズ推定は確率分布まで予測できるためです。

 

今回は勝ち/負け成功/失敗など、2つに1つのことが起こる事例のベイズ推定を取り上げました。

これはこれで物流に応用できます。

ベイズ推定で事後確率の確信度を求め、安全在庫の設定に生かす具体例

でも、もうひとひねり欲しいところです。

遅れる/遅れないに応用できますが、遅れない確率がある確信度をもって推定できたとしても、何日とか何時間遅れるというところまで分からないと、高度な意思決定に使えないからです。

どれくらい遅れるかという定量推定をするためには、二項分布ではなく、正規分布に従う確率分布の推定が必要になります。

【正規分布のベイズ推定】予想打率を逐次更新する例でわかりやすく解説

【Udemyの関連講座】

はじめての統計(推定・検定編) ~記述統計から推測統計へ!しっかり9時間、97レクチャーでデータ時代の入場券を手に入れる

データサイエンス時代にまず押さえるべきデータの扱い方・見方を扱った統計講座。データをどう要約し、分かりやすく伝えるのか(記述統計)から、そのデータから母集団について何が言えるのか(推測統計)まで、丁寧に統計的発想を身に付けます

 

いちばん理解できる統計学ベーシック講座その1【確率分布・推定・検定】

統計学の基礎を効率的に学べるベーシック講座です。統計学の入り口となる「確率分布・推定・検定」について豊富な図を用いて説明していきます。統計学や確率思考という一生モノのスキルを一緒に身につけましょう!

 

実戦力主義。の統計学 Excel統計学で見えなかったものが見えてくる。

Excelというツールが与えられたとき、統計学は「最強」を超えた学問になった。興味深いデータで楽しく学んでみませんか?統計学が身近なツールであることを実感していただけます。

 

NumPyro で学ぶ ベイズ統計モデリング 【基礎編】

Google Colaboratory で実践する統計モデリング

 

【PythonとStanで学ぶ】仕組みが分かるベイズ統計学入門

確率の基礎から出発し、ベイズ統計学の基礎およびMCMCの原理を学びます。概念の理解とPythonでのプログラミングへの実装を合わせる事で、動かしながら原理を理解できます

 

はじめてのベイズ統計【PyMC3+Colab】-確率・統計の基礎からベイズ推定のPython実装まで-

機械学習と親和性の高い、ベイズ統計の初心者向けコースです。確率・統計の基礎から初めて、ベイズ推定によるA/Bテスト、線形回帰などを学びます。Google Colaboratory環境でライブラリPyMC3を使い、ベイズ推定を実装します。