確率分布の選び方:モンテカルロシミュレーションで使う分布はどれか?
分布は、名前ではなく、不確かな数値についてわかっていることから選びます。専門家の低い値・最も可能性の高い値・高い値の3点ならPERT分布か三角分布、コストや所要期間のように正の値で上側の裾が長い量なら対数正規分布、対称な測定値なら正規分布、故障までの時間ならワイブル分布、事象の回数ならポアソン分布、起きるか起きないかならベルヌーイ分布、0〜1の割合ならベータ分布、足すと全体になる複数の割合ならディリクレ分布、期間の最大値ならガンベル分布かGEV、件数と規模で決まる損失の合計なら複合分布、過去のデータがあれば当てはめた分布です。下の質問に答えると、1〜2問で分布が決まります。xellstormには、自作のテーブルを含めて全部で52種類の分布があります。
分布を選ぶ
不確かな数値に当てはまるものを選んでください。1つでは決まらないときは、その下に2つ目の質問が開きます。
分布の一覧
パラメーター名は、xellstormの分布メニューの表記どおりです。どの分布にも、切断(2つの限界値の間の値だけを残す)とシフトを指定できます。
| 分布 | 表すもの | パラメーター | Excelでの引き方 |
|---|---|---|---|
| PERT分布 | 限界値つきの専門家見積もり(最も可能性の高い値を重視) | 最小, 最頻, 最大 | BETA.INV(RAND(), α, β, min, max) |
| 三角分布 | 限界値つきの専門家見積もり(限界に近い値もありえる) | 最小, 最頻, 最大 | SQRTを使ったIF(ガイドを参照) |
| 一様分布 | どの値も優先されない範囲 | 最小, 最大 | min+(max-min)*RAND() |
| 正規分布 | 左右対称のばらつき:測定値、誤差、多数の部品の合計 | 平均, 標準偏差 | NORM.INV(RAND(), mean, sd) |
| 対数正規分布 | 正の値で上側の裾が長いもの:コスト、損失、所要期間 | s, scale, loc | LOGNORM.INV(RAND(), LN(median), s) |
| ガンマ分布 | 正の値で右に歪む。複数の待ち時間の合計 | a, scale, loc | GAMMA.INV(RAND(), shape, scale) |
| ベータ分布 | 0〜1の間の割合・率 | a, b, loc, scale | BETA.INV(RAND(), α, β) |
| ワイブル分布 | 故障までの時間(摩耗故障、初期故障) | 形状, scale, loc | scale*(-LN(1-RAND()))^(1/shape) |
| 指数分布 | 一定の頻度で起きるランダムな事象の間隔 | scale, loc | -mean*LN(1-RAND()) |
| ポアソン分布 | ある期間に平均的な頻度で起きる事象の回数 | 平均 | POISSON.DISTとCOUNTIFの表(ガイドを参照) |
| 負の二項分布 | ポアソン分布より偏りの大きい回数:需要、まとまって出る不良 | n, p | NEGBINOM.DISTとCOUNTIFの表 |
| ベルヌーイ分布 | 事象が起きる(1)か、起きない(0)か | p | IF(RAND()<p, 1, 0) |
| 二項分布 | n回のうち「はい」になる回数 | n, p | BINOM.INV(n, p, RAND()) |
| 離散一様分布 | 範囲内の整数。どれも同じ確率 | 下限, 上限 | RANDBETWEEN(low, high) |
| 離散テーブル | いくつかの値と、その確率 | 値と確率の表 | 累積確率の表引き |
| パーセンタイルによる三角分布 | パーセンタイルで指定する三角分布(限界値ではない) | 下端, 最頻, 上端, 下端%, 上端% | – |
| t分布 | 左右対称で裾が重い:収益率、外れ値を含む誤差 | df, loc, scale | loc+scale*T.INV(RAND(), df) |
| ガンベル分布 | 多数の値の最大値:年間のピーク負荷、洪水 | loc, scale | loc-scale*LN(-LN(RAND())) |
| GEV(一般化極値分布) | 多数の値の最大値(裾がより重い場合や、上限がある場合) | 形状 (c), loc, scale | loc+scale*(1-(-LN(RAND()))^c)/c |
| メタログ分布 | 複数のパーセンタイルを通る柔軟な形 | 値と確率の表 | – |
| 複合分布 | ランダムな件数のイベントの合計(規模は1件ごとに異なる):保険金請求、損失 | 頻度, 規模, 免責額, 上限 | – |
| スプライス(本体+裾) | ある点の下と上で別の分布:本体と重い裾 | 分岐点の下, 分岐点の上, 分岐点, 下側の割合 | – |
| ディリクレ(合計の配分) | どの試行でも合計に一致する割合:市場シェア、予算の配分 | alpha(セルごと), 合計 | 各セルのGAMMA.INV(RAND(), alpha, 1)を、その合計で割る |
xellstormの分布は全部で52種類です。アプリのメニューに29種類が並び、さらに23種類が「その他の分布」にあります。その多くはExcelアドイン向けに作られたモデルで使われており、xellstormが取り込み時に変換します(アドインからのモデルの移行を参照)。
全分布をExcel数式にしたファイル
このページのExcelファイルは、分布ごとに1行で、パラメーター、RAND()の乱数、その乱数から引いた値、そして数式で求めた平均、P10、P90が入っています。F9キーを押すと、引いた値がすべて変わります。右端の列には同じ分布をxellstormの入力として設定してあるので、実行するとExcelの引きとxellstormの引きを並べて確認できます。このサイトの各ガイドでは、ファイルの数式を10,000回のこうした引きと照合しています。
| 分布 | 例とパラメーター | 平均 | P10 | P90 |
|---|---|---|---|---|
| 正規分布 | 来シーズンの需要(個) 平均 1,000、標準偏差 200 | 1,000 | 744 | 1,256 |
| 対数正規分布 | クレーム1件の修理コスト(USD) 中央値 2,000、lnのばらつき 0.8 | 2,754 | 717 | 5,576 |
| 三角分布 | 1項目のコスト(USD千) 最小 80、最頻 100、最大 140 | 106.7 | 91.0 | 124.5 |
| PERT分布 | 1項目のコスト(USD千) 最小 80、最頻 100、最大 140 | 103.3 | 89.2 | 118.7 |
| 一様分布 | 単価(USD) 最小 40、最大 60 | 50 | 42 | 58 |
| ワイブル分布 | ポンプの寿命(時間) 形状 1.5、尺度 20,000 | 18,055 | 4,462 | 34,874 |
| 指数分布 | 故障の間隔(時間) 平均 500 | 500 | 53 | 1,151 |
| ポアソン分布 | 1週間のクレーム件数 平均 4 | 4 | 2 | 7 |
| 負の二項分布 | 1週間の受注件数(ばらつきが大きい場合) 成功数 4、確率 0.5 | 4 | 1 | 8 |
| ベルヌーイ分布 | リスクが起きる(1)か、起きない(0)か 確率 0.3 | 0.3 | 0 | 1 |
| 二項分布 | 50個のロットに含まれる不良品 試行回数 50、確率 0.04 | 2 | 0 | 4 |
| ベータ分布 | 契約を更新する顧客の割合 アルファ 8、ベータ 2 | 80.0% | 63.2% | 93.9% |
| ガンマ分布 | 連続3回の修理が終わるまでの日数 形状 3、尺度 2 | 6.0 | 2.2 | 10.6 |
よくある間違い
- コストや所要期間に正規分布を使う。正規分布は左右対称で、負の値も取りえます。コストや所要期間は、下回る幅より上回る幅の方が大きくなります。
- P10とP90を最小・最大として使う。結果の5分の1が切り捨てられます。パーセンタイルに当てはめてください。
LOGNORM.INVのパラメーターの誤り。引数は、値そのものではなく、対数の平均と標準偏差です。- 確率×影響額を固定値にする。リスクは、コストが0になるか、影響額が全額かかるかのどちらかです。ベルヌーイ分布に影響額を掛ければその性質が保たれますが、期待値では失われます。
- 連動する入力を、独立として引く。価格と数量や、同じ作業班を共有する工種のコストは、一緒に上がることがよくあります。相関を設定しないと、合計のばらつきが小さく出ます。
- パーセンタイルを足し算する。複数の項目のP90を足しても、合計のP90にはなりません。合計をシミュレーションしてください(P50、P80、P90を参照)。
分布別ガイド
- ガイド
ExcelでPERT分布を使う:数式・平均・使いどころ
PERT分布は、最小から最大までのベータ分布で、平均は(最小+4×最頻+最大)/ 6です。ExcelのBETA.INV数式と、三角分布との違いも解説します。 - ガイド
Excelで三角分布の乱数を作る:数式、平均、PERT分布との違い
三角分布は、最小・最頻・最大を直線で結んだ確率に変えます。乱数とパーセンタイルを求めるExcelの数式、平均、PERT分布との違いを解説します。 - ガイド
Excelで一様分布の乱数を作る:2つの値の間の乱数
一様分布は、最小と最大の間のどの値も同じ確率で起こる分布です。Excelの数式、整数用のRANDBETWEEN、平均、範囲だけで足りる場面を解説します。 - ガイド
Excelで正規乱数を作る:NORM.INV、平均、標準偏差
ExcelのNORM.INV(RAND(), mean, sd)で正規分布に従う乱数を作り、P10とP90を読み取ります。釣り鐘型の分布が合う場面と、合わない場面もわかります。 - ガイド
Excelで対数正規分布の乱数を作る:LOGNORM.INV、パラメーター、使いどころ
対数正規分布は、正の値だけを取り、右に長い裾を持つ分布です。LOGNORM.INVのパラメーターの意味、平均と標準偏差からの求め方、使いどころを解説します。 - ガイド
Excelのガンマ分布:待ち時間、合計、GAMMA.INV
ガンマ分布は、複数の工程の合計時間のような、正の値で右に歪む量を表します。形状パラメーターと尺度パラメーター、ExcelのGAMMA.INVとGAMMA.DIST、対数正規分布との違いを解説します。 - ガイド
Excelのベータ分布:不確かな割合・率・パーセンテージ
ベータ分布は、0〜1の間にある、不確かな割合や率を表します。アルファとベータの意味、平均と標準偏差からの決め方、ExcelのBETA.INVを解説します。 - ガイド
Excelでワイブル分布の乱数を作る:形状パラメーター、尺度パラメーター、故障までの時間
ワイブル分布は故障までの時間を表します。形状パラメーターが1より小さいと初期故障、1ならランダムな故障(指数分布)、1より大きいと摩耗故障です。Excelの数式、B10寿命、指数分布の場合を解説します。 - ガイド
Excelのポアソン分布:事象の回数の扱い方と、負の二項分布の使いどころ
ポアソン分布は、既知の平均頻度で起きる事象の、ある期間内の回数を表します。POISSON.DIST、逆関数なしでExcelでポアソン乱数を作る方法、ばらつきが大きい回数に向く負の二項分布を解説します。 - ガイド
Excelの二項分布とベルヌーイ分布:はい・いいえの事象と、n回のうちの回数
ベルヌーイ分布は、リスクが起きるか起きないかのような、はい・いいえの1回の事象です。二項分布は、n回のうち「はい」の回数を数えます。Excelの数式、BINOM.DISTとBINOM.INV、リスク登録簿での使い方を解説します。
よくある質問
データがないとき、どの分布を使えばよいですか?
その量に詳しい人に、低い値、最も可能性の高い値、高い値を聞き、PERT分布か三角分布を使います。低い値と高い値が限界値ではなく「10回に1回」のケースなら、そのパーセンタイルに分布を当てはめます。そのうえで、出てきた数値が示す内容(平均、P10、P90)を、数値をくれた人と確認してください。
コスト見積もりには、どの分布が向いていますか?
コスト項目ごとに、3点見積もりからPERT分布か三角分布を作ります。明確な最大値がなければ対数正規分布です。起きるかどうかわからないリスクには、ベルヌーイ分布に影響額を掛けます。合計は見積もるのではなく、シミュレーションで求めます(プロジェクトのコンティンジェンシーの例を参照)。
作業の所要期間には、どの分布を使えばよいですか?
作業ごとの3点見積もりからPERT分布か三角分布を作るか、過去の所要期間に対数正規分布を当てはめます。どちらも上側の裾が長くなります。スケジュール全体は、作業のネットワークをシミュレーションして求めます(スケジュールリスク分析を参照)。
保険金請求やオペレーショナルリスクの損失には、どの分布を使えばよいですか?
期間内に損失が何件起きるか(頻度)と、1件ごとの大きさ(規模)を別々にモデル化し、複合分布で合計します。件数にはポアソン分布か負の二項分布、大きさには対数正規分布、ガンマ分布、パレート分布を使います。大きな損失がふだんの損失より重い裾に従うなら、しきい値より上に一般化パレート分布を置き、その下の本体とつなぎます(スプライス)。別々にモデル化すれば、それぞれを対応するデータで確かめられます。免責額や上限は、損失1件ごとに適用されます。
合計が100%になる割合は、どうシミュレーションすればよいですか?
セルごとに別々の分布を使うのではなく、ディリクレ分布でまとめて引きます。独立に引いた割合の合計が100%になることは、めったにありません。Excelでは、各セルでGAMMA.INV(RAND(), alpha, 1)を引き、それぞれをその合計で割ります。xellstormでは、セルの範囲にディリクレ(合計の配分)を選びます。
分布がデータに合っているかは、どう判断しますか?
いくつかの分布を当てはめて比べます。xellstormの「データから」は、当てはまりのよさを評価し、パラメーターが増えるほど減点するAICで順位を付け、それぞれの適合度検定も表示します。ヒストグラムと曲線も見比べてください。特に、判断に影響する側の裾を確認します。標本が小さいときは慎重に扱ってください。
分布の選び方で、結果は大きく変わりますか?
中央よりも裾が変わります。同じ3つの数値、または同じ平均の2つの形は、平均が近くても、P90や予算を超える確率が違うことがよくあります。重要な場面では、同じ乱数を使うシナリオとして両方を実行し、比べてください。
関連ページ
- ガイド
Excelでモンテカルロシミュレーション:アドインあり・なしの3つの方法
Excelモデルでモンテカルロシミュレーションを実行する3つの方法:RAND()とデータテーブル、アドイン、アドイン不要のブラウザーツール。PERT分布の数式付き。 - ガイド
P50・P80・P90の意味と、予算を組む水準の選び方
P80は、シミュレーション結果の80%がそれ以下に収まるコストです。建築プロジェクトのコスト項目6つのP80を足し合わせると2,843になりますが、実際に合計のP80を求めると2,756です(USD千)。 - ガイド
@RISK、ModelRisk、Analytic Solverのモデルの移行方法
xellstormは、@RISK、ModelRisk、Analytic Solverの分布関数164個を読み取ります。変換できたものと、変換できなかった数式の理由は、一覧で確認できます。
xellstormは、Excelモデル向けのブラウザー型モンテカルロシミュレーションツールです。アドインは不要で、Excelファイルがパソコンの外に出ることはありません。