龍捲風圖與敏感度分析詳解
龍捲風圖依每個輸入單獨讓結果變動的幅度,替模型中不確定的輸入排序:以營建估算來說,地質條件風險讓總成本變動 150(單位:千美元),比任何成本項目都大,其次是結構,為 117。xellstorm 預設把每個輸入從 P10 移到 P90,其他輸入都維持中位數。
每根長條顯示該輸入在低值與高值時的結果,其他輸入維持基準值;最寬的長條放最上面,圖形因此像漏斗。龍捲風圖顯示每個輸入單獨造成的影響;模擬試驗得出的變異貢獻度,則顯示各輸入占實際分散程度的比例。
龍捲風圖顯示什麼
敏感度分析要問的是,結果最依賴哪些輸入。龍捲風圖一次回答一個輸入:每個不確定的輸入先設成基準值,把其中一個移到低值、再移到高值,每次都記下結果,然後放回原處。每個輸入得到一根橫條,從低值對應的結果延伸到高值對應的結果,所有橫條依寬度排序,最寬的在最上面。
xellstorm 預設以各輸入的 P10 與 P90 為低值與高值,也就是抽樣值有 10% 與 90% 的時間低於它的值;基準值是中位數,即 P50。有 k 個輸入,就要重新計算檔案 2k + 1 次:營建專案範例的 17 個輸入要算 35 次。它的成本估算有 6 個成本項目,各是三點 PERT 範圍,另有 4 個風險事件,不是發生並加上成本,就是不發生;其餘輸入是時程的各項工期。圖中顯示的是總成本。
如何閱讀龍捲風圖
基準線是每個輸入都取中位數時的結果:2,675。它既不是模擬平均值(2,785),也不是模擬中位數(2,776)。這裡每個風險事件的機率都低於 50%,中位數是「不發生」,所以基準把它們全部排除在外。
長條長度是結果在該輸入的 P10 與 P90 之間移動的幅度。最上面的長條是地質條件風險,讓總成本從 2,675 變為 2,825。
左右不對稱的長條代表輸入呈偏態。結構在 P10 時讓總成本減少 50,在 P90 時增加 67,因為它的範圍在最可能成本之上延伸得比之下更遠。每個成本項目的長條都是右側較長。
只有單側的長條是風險事件。風險在 P10 時不發生,也就是基準,在 P90 時發生,所以長條就是它的完整成本,全部在右側。
沒有長條表示該輸入不影響這項結果:7 項時程工期改變的是完工日期,不是成本。
各長條不能相加。合計涵蓋 794,超過模擬總額 P10(2,644)到 P90(2,937)距離的兩倍,該距離是 293。各輸入很少同時達到 P90,所以龍捲風圖看得出哪些輸入重要,看不出結果的範圍有多寬;那要靠模擬。
龍捲風圖看不到什麼
龍捲風圖一次移動一個輸入,其他輸入固定在中位數。有兩類模型會讓它誤導。
可能不會發生的事件。風險事件的長條就是它的完整成本,不論機率大小,只要這項風險在低百分位數時不發生、在高百分位數時發生;選哪組百分位數,也決定它會不會出現在圖上。把龍捲風圖從 P10–P90 改成 P25–P75,P10–P90 時最寬的地質條件風險(機率 25%)長條會縮為零,供應商延誤(機率 20%)的長條也一樣,因為兩者在 P75 時都不發生。這時設計變更風險以 90 登上榜首。專案本身沒有任何改變,只是換了百分位數。
會一起作用的輸入。時程中,MEP(機械、電氣與給排水)與裝修在結構之後平行進行,所以完工要等耗時較長的那一個:檔案裡的 MAX。裝修固定在中位數時,一律由 MEP 決定進度,龍捲風圖給 MEP 的長條是 2.95 週,和設計、基礎的長條一樣長:三個範圍形狀相同,比最可能工期少 2 週、多 4 週。裝修幾乎沒有反應,因為它的 P90(12.27 週)幾乎不比 MEP 的中位數 12.25 長:長條只有 0.02 週。
模擬中兩個工種同時變動,有 15.0% 的試驗是裝修耗時比 MEP 長。這些試驗中完工由裝修決定,MEP 自己的工期沒有影響,所以 MEP 對完工週分散程度的解釋力,低於始終在路徑上的設計或基礎。龍捲風圖看不到這一點。
| 作業 | 龍捲風圖長條(週) | 變異貢獻度 |
|---|---|---|
| 設計 | 2.95 | 14.4% |
| 基礎 | 2.95 | 13.9% |
| MEP(平行) | 2.95 | 10.8% |
| 裝修(平行) | 0.02 | 0.4% |
只要結果取數個輸入中的較大者或較小者,就會有同樣的效應:時程中交會的平行路徑,或第一個零組件故障就失效的串聯系統。時程風險分析說明了為什麼交會的路徑會讓專案延誤。
龍捲風圖、等級相關與變異貢獻度
xellstorm 也從模擬試驗衡量敏感度,試驗中每個輸入同時變動。兩種指標都用等級(每次試驗由低到高的排名)而非數值,所以對任何單向的關係都適用,不論直線或曲線。
- 等級相關
- 輸入與結果在所有試驗上的斯皮爾曼相關係數:結果一直隨輸入上升是 +1,一直下降是 −1,沒有一致方向則接近 0。以總成本來說,地質條件風險為 0.55。
- 變異貢獻度
- 結果的變異中,隨各輸入而變的比例,由結果的等級對輸入的等級做迴歸得出:標準化係數的平方,表示成加總為 100% 的占比。
| 輸入 | 龍捲風圖長條 | 變異貢獻度 | 等級相關 |
|---|---|---|---|
| 地質條件(風險) | 150 | 32.9% | +0.55 |
| 結構 | 117 | 14.9% | +0.37 |
| MEP | 116 | 14.3% | +0.36 |
| 設計變更(風險) | 90 | 15.8% | +0.39 |
| 裝修 | 78 | 6.6% | +0.24 |
| 基礎 | 75 | 6.1% | +0.26 |
| 供應商延誤(風險) | 60 | 4.5% | +0.21 |
| 惡劣天氣(風險) | 40 | 2.5% | +0.16 |
| 設備 | 34 | 1.1% | +0.10 |
| 場地工程 | 34 | 1.2% | +0.09 |
兩者都把地質條件風險排第一,多數輸入維持原位或只動一名。占比比順序說得更多。地質條件風險的長條只有結構的 1.28 倍長,卻解釋了 32.9% 的變異,約為兩倍。變異數是與平均值距離平方的平均,而風險的成本是全有或全無:每次試驗不是零,就是完整成本,也就是長條的兩端,成本項目的抽樣值則集中在最可能值附近。風險的長條不論機率多少,只要在 10% 到 90% 之間,就是完整成本,它在變異中的占比則隨機率增加,直到 50%。
設計變更風險是各風險事件中機率最高的,為 35%,長條 90,結構與 MEP則分別為 117 與 116,但解釋的變異占比大致相同。依範圍與機率精確算出的結果(PERT 範圍的變異數是(平均值 − 最小)×(最大 − 平均值)/ 7;風險的變異數是 p × (1 − p) × 其成本的平方),結構為 15.3%、MEP 為 14.8%,設計變更風險為 14.4%。這次執行的表格(以等級計算)中,設計變更風險領先前兩者:占比這麼接近時,順序每次執行都可能不同,所以相差一兩個百分點以內,視為持平。
兩者各答各的問題。龍捲風圖回答「這個輸入落在 P10 或 P90 會怎樣?」,過程完全沒有隨機成分。變異貢獻度回答「哪些輸入造成結果的分散?」,它來自試驗,所以反映機率與各輸入一起作用的結果,如上面的 MEP。它假設每個輸入都把結果往同一方向推;等級上的直線配適不佳時,應用程式會提示,並建議改看龍捲風圖。總成本的配適相當接近。
蜘蛛圖
蜘蛛圖讓每個輸入經過多個百分位數,不只兩個,其他輸入仍維持中位數,並把結果畫成線。xellstorm 用 P5、P10、P25、P50、P75、P90 與 P95:這個模型共評估 120 次。線愈陡愈重要,彎曲的線表示影響並非成比例。每條線的 P10 與 P90 兩點,就是它在龍捲風圖中長條的兩端。
裝修的線在 P75(11.37 週)之前都停在基準值上,這比 MEP 的中位數 12.25 短,之後才開始上升:P90 時晚 0.02 週,P95 時晚 0.52 週。龍捲風圖只顯示端點;蜘蛛圖則顯示輸入從範圍的哪個位置開始有影響。
如何在 Excel 中製作龍捲風圖
- 列出不確定的輸入,每個輸入各有低值、基準值與高值。要與 xellstorm 一致,就用 P10、中位數與 P90。最小值在 B2、最可能值在 C2、最大值在 D2 的 PERT 範圍,P10 是
=BETA.INV(0.1, 1+4*(C2-B2)/(D2-B2), 1+4*(D2-C2)/(D2-B2), B2, D2),把 0.1 換成 0.5 或 0.9,就是中位數或 P90(見 Excel 的 PERT 分配)。以結構(最小 760、最可能 820、最大 1,010)為例,=BETA.INV(0.1, 1+4*(820-760)/(1010-760), 1+4*(1010-820)/(1010-760), 760, 1010)傳回約 787;中位數約 837,P90 約 904,就是 xellstorm 用的值。風險事件若機率介於 10% 與 90% 之間,P10 時為 0、P90 時為 1;機率低於 50% 則中位數時為 0。 - 把每個輸入設成基準值,記下結果:這就是基準。
- 把一個輸入設成低值並記下結果,再設成高值,然後放回原處。每個輸入都重複一次。單變數資料表(「資料」›「模擬分析」›「資料表」)以該輸入儲存格為欄輸入儲存格(Column input cell),可一次算出一個輸入的兩次重新計算。
- 計算每個輸入的變動幅度,也就是高值結果減低值結果,再依變動幅度由大到小排序。
- Excel 沒有龍捲風圖的圖表類型。插入含兩個數列的群組橫條圖(Clustered Bar),兩個數列分別是低值結果減基準、高值結果減基準,並把數列重疊(Series Overlap)設為 100%。垂直座標軸勾選「類別次序反轉」(Categories in reverse order),讓最寬的長條在最上面,再把標籤位置(Label Position)設為「低」(Low),名稱就會在長條左側。
模型或範圍一改,這張表就得重做,而且只回答「如果……會怎樣」。每個結果有多大可能、每個輸入解釋多少分散程度,需要模擬;Excel 蒙地卡羅模擬說明了公式,以及由工具代為執行 Excel 檔案時有哪些不同。
xellstorm 中的龍捲風圖
執行後,Results 步驟為每個輸出顯示龍捲風圖(附 Range 選單,可選 P5–P95、P10–P90 或 P25–P75)、變異貢獻度(旁邊是各輸入的等級相關)和蜘蛛圖。龍捲風圖與蜘蛛圖只在百分位數上評估檔案,不抽取亂數;檔案本身若有 RAND() 儲存格,每次評估都用同一組抽樣值,所以長條只反映輸入的影響。HTML 報告、PowerPoint 簡報與 Excel 結果檔也都有龍捲風圖。
- 用 xellstorm 開啟營建範例並執行。不需安裝,Excel 檔案直接在瀏覽器計算。
- 在 Results 步驟,總成本的龍捲風圖會顯示上圖的長條,另外再加最小的 2 個。把 Range 設為 P25–P75:地質條件風險從榜首掉到接近底部的 ±0,由設計變更風險取代它的位置。
- 切換到完工週,比較 MEP 的長條與它在變異貢獻度中的占比。
- 接著開啟自己的 Excel 檔案,在模型圖上選出不確定的輸入,看哪些輸入主導結果。
常見問題
龍捲風圖與蜘蛛圖有什麼差別?
龍捲風圖以兩個百分位數顯示每個輸入,蜘蛛圖則用多個。兩者都是一次移動一個輸入、其他輸入維持中位數,所以蜘蛛圖的 P10 與 P90 兩點就是龍捲風圖長條的兩端;中間的點則顯示影響是穩定增加,還是只出現在範圍的一部分。
為什麼龍捲風圖的基準不是平均值?
龍捲風圖的基準,是每個輸入都取中位數時的結果,只要重新計算一次;平均值則是所有模擬結果的平均。輸入呈偏態,或風險事件的機率低於 50%(這些事件被排除在基準之外)時,兩者就會不同:營建範例的基準是 2,675,模擬平均值是 2,785(單位:千美元)。
龍捲風圖該用哪些百分位數?
龍捲風圖最常用 P10 與 P90,也就是每個輸入範圍的中間 80%;P5–P95 的長條較長,P25–P75 較短。長條的順序可能隨範圍改變,風險事件尤其明顯:在 P25–P75 時,營建範例中最寬的長條,也就是機率 25% 的風險,會縮為零。不論用哪個範圍,都要註明圖表用的是哪一個;xellstorm 會寫在圖表上方與報告中。
龍捲風圖需要蒙地卡羅模擬嗎?
龍捲風圖不需要模擬:k 個輸入只要把模型重新計算 2k + 1 次,每個輸入取選定的值。但它確實需要每個輸入的範圍。模擬補上龍捲風圖看不到的部分:每個結果有多大可能,以及所有輸入同時變動時,每個輸入解釋多少分散程度。
相關內容
- 專案成本與時程
營建專案需要多少應變準備金?
實作範例:營建估算中各項最可能成本,有 94.2% 的模擬結果會超出。用蒙地卡羅模擬估出營建成本應變準備金。 - 風險登記冊
風險登記冊需要多少應變準備金?
機率 × 最可能影響加總為 291;模擬的平均損失為 359,最差 5% 的平均為 1,436(單位:千美元)。應變準備金要看最差的結果來定。 - 指南
時程風險分析:專案為何會延誤完工
以最可能工期編成的營建時程顯示第 55 週完工,但蒙地卡羅模擬結果中只有 14.3% 能在那之前完工。為什麼會這樣,以及怎麼訂出 P80 完工日。
xellstorm 是在瀏覽器中執行的 Excel 模型蒙地卡羅模擬工具:免裝增益集,Excel 檔案也不會離開您的電腦。