【正規分布のベイズ推定】予想打率を逐次更新する例でわかりやすく解説
ベイズ推定で確率を逐次更新する
史上最強打者と言われるジロー選手は2034年から2043年までの平均打率が3割5分でした。
ところが2044年開幕は絶不調で、4月の月間打率は2割5分5厘でした。
5月の打率はいくつになると予想しますか?
また5月には調子を取り戻して、月間打率は4割でした。
6月の打率はいくつになると予想しますか?
ベイズ推定では、このように新しいデータが得られるたびに確率を更新していくことができます。
以下、ジロー選手の予想打率を更新してみましょう。
前年までの打率と4月の打率から5月の打率を予想する
ベイズの定理に定式化する
2034年から2043年まで10年間のジロー選手の年度別打率は次の通りです。
これを事前確率としてベイズ推定してみましょう。
事前確率は尤度によって、次式で更新されます。
事後確率=事前確率×尤度
「ベイズの定理」の導出とその適用例をわかりやすく解説【初心者向け】
正規分布の掛け算で事後確率を計算する
このように掛け算によって更新されますので、事前確率も尤度も正規分布で定義できれば、比較的簡単に事後確率の分布を計算できます。
【正規分布を掛け算したら標準偏差は?】Excelで計算してグラフ表示する
事前確率は平均μは350、標準偏差σが24ですので、次のように式で表せます。
f1(x) = 1 / 24√2π×exp [-1/2×{(x – 350)/24}2]
尤度はどのように表せるでしょうか?
4月の月間打率が2割5分5厘ですが、週間打率は次のようでした。
※標準偏差は4つの標本データ個々の標準偏差ではなく、標本平均の標準偏差 (= √σ2/n)
よって、尤度は次式で表せます。
f2(x) = 1 / 27√2π×exp [-1/2×{(x – 255)/27}2]
従って、事後確率は次のように計算できます。
事後確率
= 事前確率×尤度
= 1 / 24√2π×exp [-1/2×{(x – 350)/24}2]× 1 / 27√2π×exp [-1/2×{(x – 255)/27}2]
これをグラフにすると次のようになります。
絶不調の4月の打率.255(尤度)が、過去10年間の平均打率.350(事前確率)で補正されて、.310くらいが実力値(事後確率)でしょうと予想されています。
きちんと計算すると、事後確率の平均と標準偏差は次のようになります。
平均:μ12 = {(μ1/σ12)+(μ2/σ22)} / {( 1 /σ12)+(1 /σ22)} =309
標準偏差:σ12 = 1 / {( 1 /σ12)+(1 /σ22)} =18
>> 【正規分布の掛け算】具体例を使ってエクセルでわかりやすく解説
5月の予想打率と5月の実績打率から6月の打率を予想する
ジロー選手、5月は本来の調子を取り戻して月間打率4割でした。
週間打率は次の通りでした。
よって、尤度は次式で表せます。
f2(x) = 1 / 14√2π×exp [-1/2×{(x – 400)/14}2]
事前確率は4月の打率で計算した5月の予想打率になります。
先ほど計算して平均:.309、標準偏差:18でしたので、次式で表せます。
f1(x) = 1 / 18√2π×exp [-1/2×{(x – 309)/18}2]
従って、f1(x)とf2(x)を掛け算すれば事後確率(6月の予想打率)が求まります。
グラフにすると次のようになります。
事後確率の平均と標準偏差は下記のようになります。
平均:μ12 = {(μ1/σ12)+(μ2/σ22)} / {( 1 /σ12)+(1 /σ22)} = 367
標準偏差:σ12 = 1 / {( 1 /σ12)+(1 /σ22)} = 11
前月の予想打率と前月の実績打率から当月の打率を予想する
同様に7月以降の打率を、前月に予想した打率を事前確率、前月の打率を尤度として予想すると、下表のようになります。
赤枠で囲んだ尤度は月間打率ですので、選手の好不調で大きく振れます。
それに対し、事後確率はその選手の過去の実力を加味した予想打率ですので、月間打率ほどは振れないはずです。
調子が悪い月があっても、ジロー選手ならもっと打つはずという期待が働くためです。
グラフにしてみると、それが裏付けられます。
まとめ
野球に詳しい人ならお気づきかもしれませんが、ジロー選手の2034~2043年の実績はイチローの1994~2003年の実績と同じです。
更に2044年のジロー選手の月間打率もイチローの2004年の実績と同じです。
4月と6月は不調で2割台の月間打率でしたが、7月以降は驚異的な打率で盛り返し、最終的には.372と大リーグ時代の最高打率でシーズンを終えています。
このように好不調の波が大きいシーズンでも、ベイズ推定で過去の実力値を反映すれば、予想打率はそれほど影響されません。
これは物流に応用できます。
日々の物量は顧客の都合に左右されるため、予測不能で時に大きく振れます。
しかし、それに振り回されていては現場が混乱してしまいます。
安全在庫が必要なのは、商品の需要が振れて読めないためです。
特に新製品の需要は読みづらく、少ない実績データに過去の知見を加味して予測せざるを得ません。
貨物の到着時間も、交通状況次第で予測不能です。
これが船便や航空便になると、更に予測しづらくなります。
予測というのは、古いデータより新しいデータを使う方が精度が上がるはずです。
しかし直近のデータで行おうとすると、往々にして振れが大きくなりすぎ使い物になりません。
そのような場合に、事前確率を加味した予測ができるベイズ推定は大きな魅力です。
更に、平均値を点で予測するのではなく、確信度(標準偏差)まで出してくれるので、より精緻に定量化できます。
定量化できるということは、システムで自動化できるということです。
予測を自動化できれば、その後のアクションも自動化できます。
ベイズ推定は、我々人間が普段行っている判断方法に似ています。
つまり、普段している判断を自動化できるのです。
人間の判断は時として暗黙知によりますが、それを形式知にできるというメリットもあります。
ベイズの定理、物流業界での活用競争は始まったばかりです。