【具体例でわかりやすく!】最尤法の使い方|ポアソン分布のパラメータ推定を実演

2021年8月31日

物流センターAでは常時50人のパートが必要ですが、離職者がいるため毎月新規に採用しています。

直近6か月間の月間離職者数は次の通りです。

離職者数
1 1
2 3
3 2
4 2
5 4
6 2

 

50人未満になってしまう確率を5%未満にするためには、常時何人を採用しておけば良いでしょうか?

 

ポアソン分布の復習

毎月の離職者の分布はポアソン分布に従うと考えられます。

>> 【具体例でわかりやすく!】ポアソン分布は何に使えるの?|死に筋商品への応用を実演

 

ポアソン分布は、起きる確率が低い現象が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と考えるのが一番尤もらしいのです。

これは、考えてみれば当たり前ですね。

わざわざ計算しなくても分かります。

 

同様に、今回の例を考えてみましょう。

同時確率

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からパラメータλを推定しているのです。

ベイズ推定では、このように確率分布を特徴付けるパラメータを、観測データを使ってアップデートするということをします。

最尤法を基礎としているのです。

 

さて、パラメータλが決まりましたので、これでポアソン分布が描けますね。

確率密度関数は次のようになります。

 

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

 

ポアソン分布の確率密度関数累積分布関数のグラフの描き方は、こちらを参照してみて下さい。

>> 【具体例でわかりやすく!】ポアソン分布は何に使えるの?|死に筋商品への応用を実演

 

累積分布関数を見ると、離職者数が月に5人以上になる確率は5%未満であることが分かりました。

離職者を見込んで55を常時確保しておけば安心です。