【最尤推定とMAP推定】具体例でわかりやすく実演!|プロ野球の勝率を予測

2021年8月31日

2030年のペナントレース、前年勝率5割で3位の千葉ロッテマリーンズは開幕後9勝1敗でした。

2030年シーズン終了時の勝率はいくつになるでしょうか?

この問題を、最尤(さいゆう)推定MAP推定で考えてみます。

 

最尤推定

あなたはロッテが滅多に優勝しないチームであるとか、優勝チームでもせいぜい勝率7割くらいということを全く知らない野球オンチであると仮定して下さい。

そんなあなたが、開幕後9勝1敗したロッテを見て、最終勝率がいくつになると予想するのが一番合理的でしょうか?

ずっとこのまま勝ち続けて、勝率9割で終わると考えるのが一番合理的ではないでしょうか?

 

「いやいや、そんなことが起こるはずがない。せいぜい7割くらいだろう。」

と考えるのは、プロ野球とはそんなものだという常識がある人です。

開幕後9勝1敗したという事実だけからは、勝率7割とか6割で終わるだろうと合理的に予想することはできないはずです。

 

この場合、開幕後9勝1敗したという事実のみから、ロッテの勝率は9割と考えるのが一番尤もらしい(もっともらしいと読みます)と考えていることになります。

このように起こった事実のみから、その要因の一番尤もらしい確率を推定することを最尤推定と言います。

 

これを数式で考えると以下のようになります。

成功確率pのことをn回行って、そのうちk回成功する確率は、

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

で計算できることを、二項分布のグラフの作り方で解説しました。

 

これはこのままプロ野球にも使えます。

ロッテが1試合ごとに勝つ確率(勝率)をpとすると、開幕10試合のうち9試合で勝つ確率は、

10C9×p9×(1-p)(10-9)

= 10×p9×(1-p)1

と計算できます。

 

ここでpが50%だったらどうでしょうか?

10×0.59×(1-0.5)1=1%

つまり、ロッテの勝率が50%だった場合、開幕10試合のうち9試合で勝つ確率は1%しかありません。

 

ところがpが70%だったらどうでしょうか?

10×0.79×(1-0.7)1=12%

ロッテの勝率が70%だった場合、開幕10試合のうち9試合で勝つ確率は12%ということになります。

 

では、pがいくつの場合に、開幕9勝1敗になる確率が最大になるでしょうか?

それを調べるには微分の知識が必要ですので詳細は割愛しますが、

p = k/n

の時に

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

が最大値を取ることが知られています。

この場合ですと、p = 9/10 = 0.9の時です。

つまり、ロッテの勝率が90%だった場合に、開幕9勝1敗になる確率が一番高くなります。

これが最尤推定の考え方です。

 

MAP推定

このように最尤推定では、過去の経験知を全く反映できませんので、データが少ない場合は極端な推定になってしまう可能性があります。

その弱点を解決するのがMAP推定です。

これは以前の記事の解説したベイズの定理を利用しています。

>> 「ベイズの定理」の使い方を具体例を使ってわかりやすく解説【初心者向け】

 

P(Y|X)はXが起きた時にYが起きる条件付き確率で、P(X|Y)はその逆です。

つまりベイズの定理は、P(X|Y)が分かっていてP(Y|X)が分からない時に、P(X|Y)からP(Y|X)を推定する式であると言えます。

今回の例では、Xを開幕10試合のデータ、Yをロッテの勝率pとします。

(ここで言う勝率とは最終勝率のことではなく、毎試合ごとの勝率を意味します。神が決めた勝率が存在し、試合ごとに勝つか負けるかはコイン投げのように確率的に振る舞うと考えます)

すると、ベイズの定理は、

(開幕10試合が終わった段階でのロッテの予想勝率)=(開幕10試合の結果)×(開幕前のロッテの予想勝率)

と見ることができます。

(ベイズの定理の分母にP(X)がありますが、今回求めようとしているp(=Y)とは無関係で定数になりますので、今回は無視できます)

つまりベイズの定理を使うと、開幕10試合の結果だけでなく、過去の経験知も反映して推測できるのです。

 

開幕前には野球解説者が競って優勝チームの予測をします。

実際、開幕10試合くらいが終わると、予想を変えたくなる解説者は多いそうです。

これはベイズの定理で言うと、尤度が分かったところで事前確率を更新したいということです。

このように、ベイズの定理は人間の思考とよく似たところがあります。

 

今回の例でベイズの定理を使うと以下のようになります。

ロッテの前年の成績は70勝70敗勝率5割でした。

ロッテの勝率pは神にしか分かりませんので、そのままpとしておきます。

すると、70勝70敗になる確率は二項定理より、

140C70×p70×(1-p)(140-70)

です。

これを事前確率とします。

 

次に、2030年の開幕10戦で9勝1敗する確率は、

10C9×p9×(1-p)(10-9)

です。

これが尤度になります。

 

ベイズの定理に当てはめると、

事後確率=10C9×p9×(1-p)(10-9)×140C70×p70×(1-p)(140-70)

A×p79×(1-p)71(Aは定数)

になります。

 

あとは、先ほどの最尤推定と同じです。

p = k/n

の時に

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

が最大値を取りますので、

p = k/n = 79/150 = 53%

が2030年のロッテの一番尤もらしい勝率になります。

 

随分と低い勝率になってしまいました。

開幕9勝1敗は、まぐれの確率が高いというわけです。

 

まとめ

最尤推定は、手元にあるデータのみから要因の一番尤もらしい確率を求めます。

そのため、データ数が少ない場合には極端な結果になってしまう可能性があります。

 

対して、MAP推定は過去の経験知も考慮しますので、均された結果になります。

今年10試合の勝率が9割であっても、前年勝率5割なら、そちらに引っ張られて5割3分が実力値だろうと予想されるのです。

 

しかし、既にお気づきの方もいるかもしれませんが、MAP推定では過去の経験知(事前確率)の決め方によって結果が変わってしまいます。

上の例では、前年度140試合分の成績を事前確率として利用しました。

ところが、前前年分の分も併せて280試合分の成績を事前確率とすると、5割3分よりもっと低い勝率予想になるかもしれません。

このようにベイズの定理を利用したMAP推定では、事前確率の決め方により事後確率が左右されることを問題とする見方もあります。

しかし、データの数が増えて更新の回数が上がってくると事前確率の影響は小さくなりますので、長期的には問題ないと言えます。

 

最尤推定もMAP推定も最適値一点を求めます。

つまり点推定です。

しかし、これでは推定された最適値にどのくらいの確信度があるのか分かりません。

それが分かるのがベイズ推定です。

確率分布として推定結果が得られますので、結果からいろんな情報を引き出すことができます。

ベイズ推定については、こちらで解説しています。

>> 【ベイズ推定】具体例を使ってわかりやすく実演!|高校野球の勝率を予測

>> 【正規分布のベイズ推定】具体例でわかりやすく解説!|最強打者の打率を予測する

>> 【ベイズ推定】物流への応用事例|船便が遅れる確率分布から安全在庫を調整する

>> 【例題でわかりやすく!】ベイズ推定でポアソン分布が更新される過程をエクセルで可視化