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

2021年8月31日

コインを5回投げて4回表が出ても、そのコインが表が出易いように加工された「いかさまコイン」とは言えませんね。

でも50回投げて40回表が出れば、いかさまコインかもと疑うでしょう。

 

同じようなことは物流の世界でも起こります。

ある船社は、2回に1回くらい遅延することで有名です。

でも実際に使ってみたところ、5回の中で4回は遅延しませんでした。

これに安心して、安全在庫を減らしても大丈夫でしょうか?

普通は、もう少し様子を見るでしょう。

でも50回の中で遅延なしが40回だったら、安全在庫を減らす判断をするかもしれません。

 

このように確率は同じ(この例だとすべて80%)だとしても、試行回数の多少によって確信度は異なります。

これを定量化できれば、在庫管理やリスク管理に役立てることができますし、コンサルティングをしている人にとっては良い提案書を作れます。

 

ベイズ推定では、これを定量化できます。

上の例では「二つに一つの事象」ですので、二項分布のベイズ推定になります。

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

で解説したように、二項分布のベイズ推定では事前分布ベータ分布を使います。

そこで、まずはベータ分布のおさらいから始めましょう。

 

ベータ分布とは?

ベータ分布は何回中何回成功したという確率をグラフで表すことができます。

例えば、2回中1回成功した場合のベータ分布のグラフは、次のようになります。

 

成功する確率が50%である確率密度が一番大きくなっています。

確率密度とは、0-100%のスケールで表されていない確率のようなものだと思っておいて下さい。

可能性と言ってもいいかもしれません。

確率密度と確率は比例します。

 

このグラフから分かることは、成功する確率が50%である可能性が一番高いけれども、30%とか80%である可能性もそこそこある、でも成功する確率が0%や100%である可能性はゼロであるということです。

 

次に3回中2回成功した場合のベータ分布は次のようになります。

 

成功する確率が0.67である可能性が一番高くて、離れるに従ってなだらかに低くなっています。

普通の確率計算では成功する確率は0.67になりますが、それ以外である可能性も結構あるということです。

こういうことは普通の確率計算では分かりませんね。

 

次に30回中20回成功した場合のベータ分布を見てみましょう。

 

成功する確率が0.67である可能性が一番高いことは同じですが、それ以外の確率になる可能性は低くなっていますね。

つまり、成功する確率が0.67である確信度が上がったことが、このグラフから読み取れます。

このように、ベータ分布で確率分布を表すと確信度まで分かるのです。

 

このベータ分布を式で表すと次のようになります。

Be(α,β)=A×p(α-1)×(1-p)(β-1)

α成功した回数+1β失敗した回数+1です。

Aは正規化するための定数です。

2回中1回成功したのであれば、1回失敗していることになりますので、α=2、β=2となり、Be(2,2)と表すことができます。

 

ちなみにBe(1,1)は何も情報がない一様分布となり、グラフでは次のようになります。

 

この一様分布はベイズ推定における事前確率の分布として頻繁に登場します。

 

ベイズ推定する

成功する確率がpの試行を、n回試行してx回成功する確率は二項分布に従って、

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

で表すことができました。

>> 【エクセルで実演!】二項分布のグラフの描き方を具体例でわかりやすく解説

 

また、ベイズの定理では

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

の式により、事前確率は新しく与えられた情報(尤度)により、事後確率に更新されます。

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

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

 

そして、その事後確率を今度は事前確率として新しく与えられた情報により更新すれば、次々と確率が更新されていくことになります。

これをベイズ更新ともいいます。

 

これを今回の例に当てはめてみましょう。

5回コインを投げて、

表、裏、表、表、表

が出たケースを想定します。

 

まず、事前確率としては全く情報がないという前提で一様分布を採用します。

ベータ分布ではBe(1,1)になります。

1回目は表が出ました。

これを二項分布の式で表すと、1回試行して1回表が出ましたので、

1C1×p1×(1-p)(1-1)

= p1×(1-p)(1-1)

となります。

これが尤度になります

 

従って、事後確率は

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

p1×(1-p)(1-1)×Be(1,1)

p1×(1-p)(1-1)× A×p(1-1)×(1-p)(1-1)

=A× p1×(1-p)(1-1)

となります。

p1はpで、(1-p)(1-1)は1なので、Apになりますが、後の説明のためにこのように書いておきます。

これが2回目の試行の事前確率になります。

 

2回目は裏が出ましたので、尤度は

1C0×p0×(1-p)(1-0)

= p0×(1-p)(1-0)

となります。

 

従って、事後確率は

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

= A× p1×(1-p)(1-1)× p0×(1-p)(1-0)

= A× p1×(1-p)(2-1)

となり、これが3回目の試行の事前確率になります。

 

3回目は表が出ましたので、尤度は

1C1×p1×(1-p)(1-1)

= p1×(1-p)(1-1)

となります。

 

従って、事後確率は

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

= A× p1×(1-p)(2-1) ×p1×(1-p)(1-1)

= A× p2×(1-p)(3-2)

となります。

 

ここまでで3回の試行が終わりましたが、法則性があるのにお気づきでしょうか?

3回の試行で2回表が出た場合の事後確率が

A× p2×(1-p)(3-2)

ですから、n回の試行でx回表が出た場合の事後確率は

A× px×(1-p)(n-x)

となります。

 

先述したようにベータ分布の式は

Be(α,β)=A×p(α-1)×(1-p)(β-1)

ですので、

A× px×(1-p)(n-x)

= Be(x+1,n-x+1)

になります。

つまり、n回の試行でx回表が出た場合のpの確率分布は、

Be(x+1,n-x+1)

というベータ分布になるのです。

この式は非常に重要です。

 

従って、5回コインを投げて4回表が出た場合に、表が出る確率pは

Be(4+1,5-4+1)

= Be(5,2)

で表すことができ、グラフで描くと次のようになります。

 

確信度を求める

このようにベイズ推定により、表が出る確率pの確率分布をグラフで表すことができますが、もっと端的に定量化するにはどうすればよいでしょうか?

それには、この確率密度関数累積分布関数に変換すると便利です。

ベータ分布Be(5,2)の累積分布関数を描くと次のようになります。

 

これを見ると、成功する確率pが0.5以下になる確率は約10%、pが0.9より小さくなる確率は約90%になること等が分かります。

これは見方を変えれば、5回中4回表が出たので最も可能性の高いpは80%ですが、pが50%以下である可能性も10%くらいあるということです。

 

次に、50回中40回表が出た場合のpの確率分布を求めてみましょう。

ベータ分布では

Be(x+1,n-x+1)

= Be(41,11)

となります。

グラフではこうなります。

 

だいぶグラフがシャープになりました。

これはpが80%である確信度が高まったことを意味します。

 

これの累積分布関数をグラフにすると次のようになります。

 

Pが50%以下である確率はほぼ0%、90%以下である確率はほぼ100%になったことが分かります。

 

物流に応用する

これは、そのまま船の遅延に応用できます。

5回の航行中、4回遅延しなかった(成功した)場合のpの確率分布はBe(5,2)で表せますので、pが50%以下になる確率は10%あります。

 

船便で輸入しているケースを想定してみましょう。

50%の確率で船便が遅れるのであれば、遅れた場合のリードタイムを前提とした在庫を持つ必要があるでしょう。

>> リードタイムを1日短くすれば、どれだけ在庫削減できるのか?|シミュレーションで徹底解析

 

しかしその確率が10%であれば、在庫を多く積み増すよりも、遅れた場合だけ航空便で緊急輸送する方がコストが低くなるかもしれません。

これは、在庫保有コストInventory carrying cost)と緊急輸送費のバランスによって決まります。

 

もし5回中3回遅延しなかったケースではどうなるでしょうか?

Pの確率分布はBe(4,3)になりますので、確率分布は次のようになります。

 

そして累積分布関数は次のようになります。

 

Pが50%になる確率は34%もあります。

このくらい遅延する確率が高いと、航空便で緊急輸送するよりも、在庫を積み増しておく方がコスト安になるでしょう。

 

しかし、もし50回中30回遅延しなかったらどうなるでしょうか?

Pの確率分布はBe(31,21)になり、累積分布関数をグラフにすると次のようになります。

 

Pが50%以下になる確率は8%しかありません。

これくらい低ければ、在庫を積み増しておく必要はないかもしれませんね。

 

まとめ

通常の確率の計算では、5回中3回成功も、50回中30回成功も同じ60%の確率です。

直観的には5回中3回成功だと60%の確率とするのは確信度が低いと分かっていても、それを定量化することはできません。

ベイズ推定ではそれを定量化でき、確信度を数字でバシッと示すことができます。

 

これはコンサルティングをする際には非常に説得力を持ちます。

また、システム化する際にも有用であることは言うまでもありません。