ベータ分布(Beta distribution)
納期に間に合うか?ベータ分布
工期見積もり
ベータ分布が表舞台に現れる数少ない例が、PERT(Program Evaluation and Review Technique)という工期見積もり手法である。以下のストーリー性あふれる例を見てみよう。
今回新たなプロジェクトがスタートした。なんとしてでも期限までに完了させたい。楽観的に考えると1ヵ月後には納品できるという意見もある。 しかし、毎晩布団に潜ると不安が襲って来る。ここはラテンアメリカではないのだ!心配要素は数えればいくらでもある。最悪の場合、納期が遅れて6ヵ月後になる可能性だってあり得る。 プロジェクトメンバーの大半の意見とこれまで実績から、一番可能性のある納期の試算は2ヶ月半と出た。
では納期の期待値はいったいいつと判断すべきなのでしょうか。
PERT では3点見積もりという方法で納期の期待値を算出しています。
PERT では3点見積もりという方法で納期の期待値を算出しています。
納期の期待値 = (楽観値+4×最可能値+悲観値)÷6
この場合では、8.5÷6[ヶ月]。大体1月半くらいになるでしょうか。実はこの算式の正体は、工期の確率分布をベータ分布とした場合の期待値の簡易算式です(簡易式なので実際のベータ分布の期待値とは一致しませんが)。分布の万能選手
その利用例の少なさとは裏腹に、この分布は実に優れた特徴を持っています。それは、極めてバラエティーに富んだ分布形状を取ることができることなのです。このように様々な形状がとれるので、素性不明の分布があれば、適当にパラメータを調整してフィッティングが出来るでしょう。
さあ、では例を見てみましょう。
1棟あたり100戸、全100棟。総戸数10000戸のマンモス団地で、ある商品を売るために100人の大営業部隊を投入することにしました。1人1棟担当し、全戸を回るローラー作戦を実行です。
この商品がこの団地で売れる確率は、平均的な力量をもった営業マンならば だったとしましょう。つまり、4件に1件は買ってくれるということ。
- 驚くべきことに営業マンの力量が全員一定の場合。
この場合1棟(100戸)あたりで売れる商品の数は の成功確率で100回トライする二項分布になるので、個売れる確率は、 となります。 - やっぱり営業マンの力量が一定でない場合。
入ったばかりの新人営業マンや、この道一筋のカリスマ営業マンなど、100人もいえば様々な力量を持った営業マンがいるでしょう。すると売れる確率は ではなく、図のような分布になったとします。
この分布は何分布なのでしょうか?こんなものにはモデルなどありません。そこでベータ分布の登場なのです。ベータ分布のパラメータを上手に調整して、この分布は に従うとしたとしましょう。 この場合、1棟当たりの売上の分布は、 という二項分布の式で、成功確率 自体がベータ分布に従うという、ベータ二項分布(別名:負の超幾何分布、ポリア=エッゲンベルガー分布)になるのです!
分布の形状
基本情報
- 2つのパラメータ が必要です (どうやって求めるの?)
- 有限区間 で定義される連続分布
- 平均対して対称にも非対称にもなり得ます。
確率
- 累積分布関数 ここで は 正規化された不完全ベータ関数です。
- 確率密度関数 ここで は ベータ関数です。
- Excel での累積分布関数 (c.d.f.) と 確率密度関数 (p.d.f.)の求め方
1 2 3 4 5 6 7 A B データ 説明 0.5 対象となる値 8 分布のパラメータ Alpha の値 2 分布のパラメータ Beta の値 数式 説明(計算結果) =NTBETADIST(A2,A3,A4,TRUE) 上のデータに対する累積分布関数の値 =NTBETADIST(A2,A3,A4,FALSE) 上のデータに対する確率密度関数の値 - 関連 NtRand 関数 : NTBETADIST
- 第4引数が TRUE の場合、この関数は Excel 関数”BETADIST” と同等です。
分位点
分布の特徴
平均 – 分布の”中心”はどこ? (定義)
- 分布の平均 は次式で与えられます。
- Excel での計算法
1 2 3 4 5 A B データ 説明 8 分布のパラメータ Alpha の値 2 分布のパラメータ Beta の値 数式 説明(計算結果) =NTBETAMEAN(A2,A3) 上のデータに対する分布の平均 - 関連 NtRand 関数 : NTBETAMEAN
標準偏差 – 分布はどのくらい広がっているか(定義)
- 分布の分散 は次式で与えられます。
- Excel での計算法
1 2 3 4 5 A B データ 説明 8 分布のパラメータ Alpha の値 2 分布のパラメータ Beta の値 数式 説明(計算結果) =NTBETASTDEV(A2,A3) 上のデータに対する分布の標準偏差 - 関連 NtRand 関数 : NTBETASTDEV
歪度 – 分布はどちらに偏っているか(定義)
- 分布の歪度 は次式で与えられます。
- Excel での計算法
1 2 3 4 5 A B データ 説明 8 分布のパラメータ Alpha の値 2 分布のパラメータ Beta の値 数式 説明(計算結果) =NTBETASKEW(A2,A3) 上のデータに対する分布の歪度 - 関連 NtRand 関数 : NTBETASKEW
尖度 – 尖っているか丸まっているか (定義)
- 分布の尖度 は次式で与えられます。
- Excel での計算法
1 2 3 4 5 A B データ 説明 8 分布のパラメータ Alpha の値 2 分布のパラメータ Beta の値 数式 説明(計算結果) =NTBETAKURT(A2,A3) 上のデータに対する分布の尖度 - 関連 NtRand 関数 : NTBETAKURT
乱数
- 乱数生成のアルゴリズムは、
R. C. H. Cheng, “Generating beta variates with nonintegral shape parameters”, Communication of the ACM, 21(1978), pp 317-322
に従います。 - Excel での乱数生成法
1 2 3 4 5
A B データ 説明 0.5 分布のパラメータ Alpha の値 0.5 分布のパラメータ Beta の値 数式 説明(計算結果) =NTRANDBETA(100,A2,A3,0) 100個のベータ乱数を Mersenne Twister アルゴリズムで生成します。 メモ: この使用例の数式は、配列数式として入力する必要があります。使用例を新規ワークシートにコピーした後、A5:A104 のセル範囲 (配列数式が入力されているセルが左上になる) を選択します。F2 キーを押し、Ctrl キーと Shift キーを押しながら Enter キーを押します。この数式が配列数式として入力されていない場合、単一の値 2 のみが計算結果として返されます。
- 関連 NtRand 関数 : NTRANDBETA
関連 NtRand 関数
- 既に分布のパラメータをお持ちの場合
- Mersenne Twiseter 法による乱数生成 : NTRANDBETA
- 確率計算 : NTBETADIST
- 平均計算 : NTBETAMEAN
- 標準偏差計算 : NTBETASTDEV
- 歪度計算 : NTBETASKEW
- 尖度計算 : NTBETAKURT
- 上記の各モーメントを一度に計算 : NTBETAMOM
- 分布の平均と標準偏差をお持ちの場合
- 分布のパラメータ推定 : NTBETAPARAM
参照
- Wolfram Mathworld – Beta Distribution
- Wikipedia – Beta distribution
- Statistics Online Computational Resource
- Numerical Technologies Magnitude – Operational risk
- Bayesian statistics
- Project management – PERT, CPM and so on
- Information theory
- Rule of succession
- The beta distribution as a probability model for daily cloud duration
- Risk management – Operational risk