ExcelでPERT分布を使う:数式・平均・使いどころ
PERT分布は、3点見積もり(最小、最頻、最大)を、最小から最大まで引き伸ばしたベータ分布にしたものです。平均は(最小+4×最頻+最大)/ 6で、建物の躯体を760、820、1,010(USD千)と見積もると、平均は841.7になります。ExcelにPERT関数はありませんが、=BETA.INV(RAND(), α, β, min, max) でPERT分布から値を引けます。
形状パラメーターは α = 1 + 4 × (最頻値 − 最小値) / (最大値 − 最小値)、β = 1 + 4 × (最大値 − 最頻値) / (最大値 − 最小値) です。同じ3つの数値の三角分布は平均が863.3で、PERT分布より広く散らばります。
PERT分布とは
3点見積もりは、あり得ると考える最も低い値、最も可能性の高い値、最も高い値の3つです。PERT分布は、この3つの数値から結果の全範囲を描きます。最小を下回ることも最大を上回ることもなく、最頻値で山になり、両端に向かってなめらかに減ります。限界に近い値も起こりえますが、めったに出ません。
数学的には、ベータ分布の一種です。ベータ分布は、区間が固定され、2つの正の数α(アルファ)とβ(ベータ)で形が決まる分布の一族で、0〜1の区間を最小〜最大に引き伸ばして使います。PERTは、山が最頻値の位置に来て、平均が(最小+4×最頻+最大)/ 6になるようにαとβを選びます。最頻値を4回、両端を1回ずつ数える形です。重み4は、PERT(Program Evaluation and Review Technique)に由来します。1950年代後半に米海軍のポラリス・ミサイル計画のために開発されたプロジェクトスケジューリング手法で、各作業の期待所要期間を(楽観値+4×最頻値+悲観値)/ 6と見積もりました。プロジェクトマネージャーは今もこの式をPERTまたは3点見積もりと呼びます。この式は、この分布の平均にあたります。
| 量 | 数式と計算例 |
|---|---|
| 形状 α | 1 + 4 × (ml − min) / (max − min) = 1 + 4 × (820 − 760) / 250 = 1.96 |
| 形状 β | 1 + 4 × (max − ml) / (max − min) = 1 + 4 × (1,010 − 820) / 250 = 4.04 |
| 平均 | (min + 4 × ml + max) / 6 = 5,050 / 6 = 841.7 |
| 標準偏差 | √((mean − min) × (max − mean) / 7) = 44.3 |
| 山の頂点(最頻値) | ml = 820 |
平均の841.7が最頻値より上にあるのは、範囲が最頻値より上(820〜1,010)の方が下(760〜820)より広いからです。コストや所要期間の見積もりは、たいていこのように偏っています。最も可能性の高いコストの合計が楽観的になるのもそのためで、プロジェクトのコンティンジェンシーの例でわかります。標準偏差を求める昔ながらのPERTの簡便法、(最大値 − 最小値) / 6は近似にすぎません。ここでは41.7で、上の式では44.3です。
ExcelでのPERTの数式
ExcelにPERT関数はありませんが、BETA.INV(probability, alpha, beta, A, B) なら、AからBまでの任意の区間に引き伸ばしたベータ分布の値が得られます。見積もりの最小、最頻、最大がセルB2、C2、D2にあるとします。
| 項目 | 数式 |
|---|---|
| ランダムに引く | =BETA.INV(RAND(), 1+4*(C2-B2)/(D2-B2), 1+4*(D2-C2)/(D2-B2), B2, D2) |
| 平均(E2) | =(B2+4*C2+D2)/6 |
| 標準偏差 | =SQRT((E2-B2)*(D2-E2)/7) |
| P90 | =BETA.INV(0.9, 1+4*(C2-B2)/(D2-B2), 1+4*(D2-C2)/(D2-B2), B2, D2) |
確率に RAND() を使うと、再計算のたびに新しい値を引きます。確率を固定すると、BETA.INV はそのパーセンタイルをシミュレーションなしで直接返します。躯体の項目では、0.9で904.1、0.1で786.9です。Excel 2007以前の名前 BETAINV も、引数は同じです。2つの形状の式はどちらも最大値 − 最小値で割るので、最小と最大は異なる値でなければなりません。
1つの項目のパーセンタイルは、合計のパーセンタイルではありません。複数の項目のP90を足しても、合計のP90にはなりません(P50、P80、P90を参照)。合計を求めるにはシミュレーションが必要です。Excelのみの場合は、Excelでのモンテカルロシミュレーションで説明しているように、データテーブルなどで何千回もの再計算結果を集めることになります。
PERT分布と三角分布:同じ3つの数値でも答えは違う
三角分布も同じ最小、最頻、最大を使いますが、密度は最小から最頻値まで直線的に上がり、最大まで直線的に下がります。平均は(最小+最頻+最大)/ 3で、最頻値は4回ではなく1回しか数えないので、遠い側の限界が平均をより強く引っ張ります。躯体の項目では、2,590 / 3 = 863.3で、PERTの841.7より約22高くなります。標準偏差 √((min² + ml² + max² − min × ml − min × max − ml × max) / 18) は53.3で、PERTの44.3を上回ります。
モデルでどれだけ違いが出るかを見るため、建築の例の5,000回の試行を、同じシードで2回実行しました。1回は公開どおり、躯体をPERT分布にしたもの。もう1回は、躯体を同じ3つの数値の三角分布に切り替えたものです。ほかの入力は2回とも完全に同じ値を引き、躯体にも各試行で同じ乱数を使うので、2回の実行の違いはこの1つの分布の形だけです。
| 躯体の項目 | PERT | 三角分布 |
|---|---|---|
| 平均(数式) | 841.7 | 863.3 |
| 平均(引いた値) | 841.7 | 863.3 |
| 標準偏差(数式) | 44.3 | 53.3 |
| 標準偏差(引いた値) | 44.3 | 53.3 |
| 引いた値のP10 | 786.9 | 798.7 |
| 引いた値のP90 | 904.1 | 941.1 |
| PERTのP90を超える引き | 10.0% | 23.6% |
引いた値は、表示した桁まで式と一致します。平均は841.7と863.3です。xellstormの既定のラテンハイパーキューブサンプリングが効いています。各入力について、範囲を等確率に分けた5,000個のスライスのそれぞれから、ちょうど1つずつ引くためです。三角分布の方が幅が広く、P10〜P90の幅は142.4で、PERTの117.2を上回ります。PERTのP90(904.1)を超える引きは、PERT自身では10%ですが、三角分布では23.6%です。ただし、両側が広がるわけではありません。最小の近くではPERTの方が引きが多く、三角分布のP10は798.7と、PERTの786.9より高くなります。最頻値が下端に近いので、三角分布は重みを長い上側の裾に移します。対称な見積もりなら、両端の重みが増えます。
6項目のうち1項目だけで、合計が動きます。躯体を三角分布にすると、総コストの平均は2,785から2,806に上がります。項目の平均が上がった分と同じ幅です(ほかの引きはすべて同じ)。P90は27上がり、予算2,900を超える確率は16.1%から20.8%に上がります。
| 総コスト | PERT | 三角分布 |
|---|---|---|
| 平均 | 2,785 | 2,806 |
| P90 | 2,937 | 2,964 |
| 予算2,900を超える確率 | 16.1% | 20.8% |
どちらの形も、正しいとも間違いとも言えません。同じ3つの数値を2通りに読んだだけです。意識して選び、予算がどちらに基づくかを明示してください。
PERT分布、三角分布、対数正規分布の使い分け
- PERT分布は、最頻値が最も信頼できる数値である専門家の見積もりに向いています。下限と上限がわかっているコスト、所要期間、数量などです。平均は最頻値に近いままで、限界値にはめったに届きません。最小と最大を「まず届かない境界」として置く場合に合います。
- 三角分布は、限界に近い値が現実的な場合や、同じ3つの数値からより慎重な広がりを取りたい場合に使います。偏った見積もりでは長い側により重みが乗るので、平均と上側のパーセンタイルが高くなります。密度が2本の直線なので、説明しやすい点もあります。
- 対数正規分布は、明確な最大値がない場合に使います。何倍にも超過しうるコスト、損失、所要期間や、ゼロを下回らないが右に長い裾を持つ量などです。限界ではなく、代表的な値とばらつきで決まります。
- 当てはめた分布は、3つの数値がまったく限界値ではない場合に使います。専門家の「低」「高」が10回に1回のケース(P10とP90)なら、それを最小・最大とするPERTでは、その外側にある20%の結果が抜け落ちます。代わりに、パーセンタイルに分布を当てはめます。過去のデータがあれば、データに当てはめます。
機械加工の寸法のように、目標値のまわりで対称にばらつくものは、通常は正規分布です。公差積み上げの例がそうです。
xellstormでPERT分布を入力する
xellstormはExcelファイルをブラウザー内で計算し、分布はファイルの外に保持するので、ファイルに BETA.INV の数式を入れる必要はありません。
- Excelファイルを開き、モデルマップで不確かなセルをクリックして「Make input」を選びます。新しい入力は、セルに保存されている値の90%〜110%のPERT分布から始まります。
- 「Distributions」ステップで、Distribution列をPERTのままにして、最小、最頻、最大を入力します。Shape、Mean、P10 – P90の列は入力に合わせて更新されるので、実行前に3つの数値が何を意味するかがわかります。
- 見積もりがすでにExcelファイルにあり、入力の隣のセルにMin、Likely、Max(またはLow、Base、High)というラベルが付いている場合は、サイドパネルに「Link to these cells」が表示されます。リンクしたPERTは実行のたびにそのセルを読み取るので、シートを編集しても、編集後のExcelファイルを開いて保存したプロジェクトを適用すれば引き継がれます。リスク登録簿の例がこの方法です。
- 低と高が限界ではなくP10とP90の場合は、代表値をP50として、サイドパネルの「Fit from estimates」に入力し、分布の形をPERT、Normal、Lognormal、Triangularから選びます。xellstormはその形で最も近い分布を探し、当てはめ誤差を表示します。過去の値に当てはめるなら「From data」タブを使います。
- 形を比較するには、入力の分布をTriangularに変えたシナリオを追加し、同じ3つの数値を入力します。シナリオは同じ乱数で実行し、「Results」ステップが、それぞれを基準ケースと比べます。
@RISK、ModelRisk、Analytic Solver用のExcelファイルには、PERT関数(RiskPert、VosePERT、PsiPert)が入っていることがよくあります。「Import from workbook」は、単独の関数、または正の乗数1つに最大1つのオフセットを付けた関数を入力に変換します。VosePERT(E7,1,F7)*D7 がその一例です。セルを使った引数と乗数は、算術式も含めてリンクを保ち、各シナリオの固定セルを適用してから読み直します。上の BETA.INV の数式も、同等のベータ入力に変換します。2つの形状の計算と最小・最大は、セルにリンクしたままです。割り算を明示しているので、最小と最大が異なる必要がある点は同じです。最小、最頻、最大がすべて等しいPERT入力は、その1つの値を引きます。
よくある質問
PERT分布の平均の式は何ですか?
PERT分布の平均は(最小+4×最頻+最大)/ 6で、最頻値を4回、両端を1回ずつ数えます。760、820、1,010の見積もりでは、5,050 / 6 = 841.7です。プロジェクトマネジメントでは、同じ式をPERTまたは3点見積もりと呼びます。
PERT分布の標準偏差はいくつですか?
PERT分布の標準偏差は √((mean − min) × (max − mean) / 7) です。簡便法の(最大値 − 最小値) / 6は近似にすぎません。760、820、1,010の見積もりでは、簡便法は41.7、式で求めると44.3です。
PERT分布はベータ分布と同じですか?
PERT分布はベータ分布の一種です。最小から最大まで引き伸ばし、形状パラメーターを最頻値で決めたもので、α = 1 + 4 × (最頻値 − 最小値) / (最大値 − 最小値)、β = 1 + 4 × (最大値 − 最頻値) / (最大値 − 最小値) です。形状パラメーターが違うベータ分布はPERTではありません。ベータ分布なので、Excelの BETA.INV で値を引けます。
PERT分布と三角分布のどちらを使うべきですか?
PERT分布と三角分布は同じ最小、最頻、最大を使いますが、三角分布の方が広く散らばり、偏った見積もりでは長い側に寄ります。躯体を760、820、1,010(USD千)と見積もった場合、三角分布の平均は863.3、PERTは841.7です。最頻値を最も信頼していて、限界にはめったに届かないならPERT、より慎重な広がりが欲しい場合や、限界に近い値が現実的な場合は三角分布を使います。
ExcelでPERT分布のP90を求めるには?
1つのPERT入力のP90は、確率を0.9にした BETA.INV でそのまま求まります。=BETA.INV(0.9, 1+4*(ml-min)/(max-min), 1+4*(max-ml)/(max-min), min, max) で、760、820、1,010の見積もりでは904.1になります。このページのシミュレーションで引いた5,000個の値は、ラテンハイパーキューブサンプリング(範囲を等確率に分けた各スライスから1つずつ引く)の効果もあり、これを904.1で再現します。複数の不確実な項目の合計のP90が必要なら、シミュレーションを実行してください。パーセンタイルは足し合わせられません。
関連ページ
- ガイド
Excelでモンテカルロシミュレーション:アドインあり・なしの3つの方法
Excelモデルでモンテカルロシミュレーションを実行する3つの方法:RAND()とデータテーブル、アドイン、アドイン不要のブラウザーツール。PERT分布の数式付き。 - プロジェクトのコストとスケジュール
建築工事にコンティンジェンシー(予備費)はどれくらい必要か?
例題:建築工事の見積もりでは、シミュレーション結果の94.2%が、最も可能性の高いコストの合計を超えます。建築工事のコンティンジェンシー(予備費)をモンテカルロシミュレーションで見積もります。 - ガイド
P50・P80・P90の意味と、予算を組む水準の選び方
P80は、シミュレーション結果の80%がそれ以下に収まるコストです。建築プロジェクトのコスト項目6つのP80を足し合わせると2,843になりますが、実際に合計のP80を求めると2,756です(USD千)。
xellstormは、Excelモデル向けのブラウザー型モンテカルロシミュレーションツールです。アドインは不要で、Excelファイルがパソコンの外に出ることはありません。