ポアソン分布のパラメータλをExcelソルバーを使って最尤法で求めてみた。
物流センターAでは常時50人のパートが必要ですが、離職者がいるため毎月新規に採用しています。
直近6か月間の月間離職者数は次の通りです。
月 | 離職者数 |
1 | 1 |
2 | 3 |
3 | 2 |
4 | 2 |
5 | 4 |
6 | 2 |
50人未満になってしまう確率を5%未満にするためには、常時何人を採用しておけば良いでしょうか?
ポアソン分布のパラメータλはどのように決めればよいのか?
毎月の離職者の分布はポアソン分布に従うと考えられます。
【ポアソン分布の使い方】在庫管理への適用方法を具体例で解説します。
【バックスクリーン3連発】ポアソン分布で伝説が生まれた確率を計算してみた
ポアソン分布は、滅多に起こらない現象がx回起きる確率で、次式で表されます。
f(x) = λx e–λ / x!
λ:ある期間内に起きる平均回数
x:ある期間内に起きる知りたい回数
xに知りたい回数を代入すれば確率が求まりますが、その前にλを決めないといけません。
λはある期間内に事象が起きる平均回数です。
この例でいうと、ある期間とは1か月と考えればよいでしょう。
それではλをどのように決めたらよいでしょうか?
一番簡単なのは、6か月間の平均を取るやり方ですね。
計算すると2.33になります。
でも本当にこんなに簡単でいいのでしょうか?
もう少し複雑なやり方である最尤法を使ってλを推定して確かめてみましょう。
最尤法でパラメータを決めるとはどういうことか?
まず、今が2月1日だとします。
この時点で1月の離職者が1人だったことを知りました。
従って、1月にはxに1を入れると
f(1) = λ1 e–λ / 1!
の確率の出来事が起こったことになります。
次に3月1日になりました。
この時点で2月の離職者が3人だったことを知りました。
従って、2月にはxに3を入れて
f(3) = λ3 e–λ / 3!
の確率の出来事が起こりました。
それだけではありません。
3月1日の時点では、1月に1人、2月に3人が離職したという出来事が同時に起こっています。
これを数学的には、同時確率といい、
f(1)・f(3)
= λ1 e–λ / 1!・λ3 e–λ / 3!
= λ4 e–2λ / 1!3!
の出来事が起きたことになります。
「条件付き確率」の使い方を具体例を使ってわかりやすく解説【初心者向け】
同様に考えると、現時点では同時確率
f(1)・f(3)・f(2)・f(2)・f(4)・f(2)
= λ14 e–6λ / 1!3!2!2!4!2!
= λ14 e–6λ / 1152
の出来事が起きたといえます。
これは確率ですが、λが決まっていないので○○%という数字では出てきません。
ではλをいくつとするのが一番尤もらしい(もっともらしい)でしょうか?
それは、これをλの関数と考えて、その関数が最大値をとる時のλが一番尤もらしいといえます。
最尤法はコンイン投げが理解し易い
何を言っているのか分からないという人は、コイン投げを想像してみて下さい。
コインの表が出る確率をλ、裏が出る確率を1-λとします。
2回投げて、表、裏と出たとしましょう。
この時の同時確率は
f(表)・f(裏)
= λ (1-λ)
= –λ2 + λ
ですね。
これは2次関数でグラフにすると次のようになります。
この関数、つまり同時確率はλ=1/2で最大値を取ることが分かります。
つまり、2回コインを投げて表と裏が1回ずつ出た場合には、λ=1/2と考えるのが一番尤もらしいのです。
これは、考えてみれば当たり前ですね。
わざわざ計算しなくても分かります。
最尤法をExcelソルバーを使って解く方法
同様に、今回の例を考えてみましょう。
同時確率は
f(λ) = λ14 e–6λ / 1152
でしたね。
これが最大値を取る時のλを求めれば、それが一番尤もらしいλです。
これは計算しないと分かりません。
そこでエクセルのソルバーで解いてみましょう。
次のようにλとf(λ)をエクセルシートに入力します。
λには初期値として、とりあえず1を入力しておきます。
f(λ)には
λ(1+3+2+2+4+2) e–(1+1+1+1+1+1) λ / 1152
と入力します。
次に、メニューからデータ>ソルバーをクリックします。
続いて出てくるポップアップ画面では、「目的セルの設定」にはf(λ)を、「変数セルの変更」にはλを入力し、「目標値」は最大値をクリックします。
そして「解決」ボタンをクリックすると答えが出ます。
次のようにλが2.33の時に、f(λ)が0.0001の最大値を取ることが分かりました。
最尤法の考え方はベイズ推定に通じる
結局、6か月間の離職者の平均と同じ値になりました。
わざわざ最尤法で解く必要もなかったですね。
ポアソン分布のパラメータλは単純平均で求めればよいのです。
でも、この考え方は大変重要です。
この最尤法は、ベイズ推定に通じる考え方だからです。
通常、ポアソン分布は次式で表されます。
f(x) = λx e–λ / x!
これはxの関数です。
λは予め決まった定数でパラメータと呼ばれます。
ポアソン分布という確率分布の形を特徴付ける重要なパラメータです。
これに対して、
f(λ) = λx e–λ / x!
と書くとλは変数に、xは定数になります。
同じ式なのに、変数と定数を逆転して見ているのです。
先ほどの最尤法では、このように変数と定数を逆転して見ています。
観測データxからパラメータλを推定しているのです。
ベイズ推定では、このように確率分布を特徴付けるパラメータを、観測データを使ってアップデートするということをします。
最尤法を基礎としているのです。
ベイズ推定でポアソン分布のパラメータを求めるやり方については、こちらを参照してみて下さい。
ベイズ推定でポアソン分布のパラメータを更新する方法をExcelで実演!
さて、パラメータλが決まりましたので、これでポアソン分布が描けますね。
確率密度関数は次のようになります。
そして累積分布関数は次のようになります。
ポアソン分布の確率密度関数と累積分布関数のグラフの描き方は、こちらを参照してみて下さい。
【ポアソン分布の使い方】在庫管理への適用方法を具体例で解説します。
累積分布関数を見ると、離職者数が月に5人以上になる確率は5%未満であることが分かりました。
離職者を見込んで55人を常時確保しておけば安心です。