蒙地卡羅風險分析法是甚麼?

蒙地卡羅風險分析法是甚麼?

前兩週去工研院上Oracle Risk Analysis的操作應用課程,所以手邊在準備相關的素材。 邊準備就邊想到,蒙地卡羅風險分析是一個很多人聽過讀過,可是常搞不清楚是做什麼的玩意。

最起碼我自己每次講到PMBOK風險章節時,同學都會針對風險定量分析(Risk Quantitative Analysis)問很多問題。 所以就想到可以寫這麼一篇文章,來跟大家談談所謂蒙地卡羅風險分析法到底是在做甚麼。

不過,在一開頭,要先幫大家破除一個謬思。 因為很多人總以為這類風險分析軟體是能「自動」幫忙分析專案風險。

可惜,這是不可能的。

電腦是比人笨很多的東西。 它可以幫我們大量運算,可是前提是要有「人」把相關參數告訴電腦。 所以蒙地卡羅風險分析軟體,是無法「主動」幫我們判斷風險。 可是,如果電腦不能主動判斷風險,那它到底能做甚麼事情呢?

為避免講專案的例子太抽象,我試著舉個比較生活化的例子。 做專案蒙地卡羅風險分析,就好比拿運動遊戲來作球隊勝率的模擬分析一樣。

甚麼意思呢? 市面上有很多運動經營模擬遊戲,棒球、籃球、足球都有。 我手邊一下有比較多資料的是足球遊戲,所以就以這當例子好了。

這類遊戲通常都有現實球員的詳細資料,其中會根據統計資料把球員能力轉換成某種數值化的差異。 守備率、射門率、速度、控球、控球、盤球力、傳球、頭鎚、開角球、開自由球、反應等等不同能力的統計資料(或定性數值)。 更完美的還會模擬場上的狀況,如天候、手球、犯規、不同部位受傷、體力耗損等。

你要經營一個球隊,一個球員是不夠的,你需要正式上場的球員、也需要候補球員,還需要考量不同的隊形與戰術。 不同戰術又須考量不同球員的適性與數值,也需要找不同屬性的球員。 有人適合長射、有人適合短傳、有人強於防守、有人適合4-4-2的陣勢、有人適合3-5-2的陣勢等等。

而也因為是模擬實際職業比賽,所以球員都有身價。 廣泛能力強的,通常簽約金很高;有明顯缺點的,簽約金可能就比較便宜。 所以這類遊戲的樂趣,一方面在於經營球隊,另一方面也在於有沒有可能組合出一個「能夠互補卻不花太多錢的球隊」。

當然,遊戲是否模擬周延的問題我們暫且先放一邊。 假設遊戲能把環境模擬得非常充分,一個球隊的教練甚至可以以此來測試球員組合並用來做為實際球隊建置的考量。

首先,他可以考慮覺得合適的球員。 決定簽約金,並把人招募進來。

人員能力數值化

(上圖,了解球員以及相關的統計能力數值)

再來,根據招募來的球員,決定合宜的戰術、隊形、以及位置排列。

球隊戰術與人員調度

(上圖,設定球隊的戰術與球員位置調度)

最後,就可以跟同一聯盟的其他球隊來模擬比賽。

模擬比賽

(上圖,比賽模擬)

也因為數值都是模擬化與統計化的結果,只比一場當然沒有任何實質意義,所以通常你該試著比個100場甚至1000場。(有些軟體可以不跑3D動畫,很快速的模擬後以報表呈現數據) 然後分析自己這樣的球隊在這樣的比賽場數中,能獲得多少比例的勝率。 若1000場比下來,我目前組合的勝率不高,那能不能微調隊形、戰術、甚至把A球員賣掉換另一個人進來。 然後重新比個1000場,看看勝率有顯著的變化。

這樣模擬下來或許會發現,原本以為最重要的明星球員佔了很高的預算,但若換個平均能力值少一半的便宜球員,對勝率影響其實微乎其微,而省下的預算可以用在別的地方。 這時候就能以更合理的金額組一個效率最大的球隊。

好,以上的描述基本上現實中恐怕還沒辦法完全實現,因為尚不存在能這麼完美模擬球場狀況的模擬器。 不過就理論而言,只要能把球員的能力根據統計資料完整累計,並把球場上的各類因素都考量進來,球員對於比賽勝率的影響是可以透過多次的模擬比賽而有所參考意義。

這概念你若能看懂,那專案上面的蒙地卡羅風險分析也就是在做一樣的事情了:讓一個規劃好的專案重複執行一定次數,並看看在考量各類不確定性後,專案最可能的完成時間、資源需求、以及總成本會是如何? 原訂完成時間多高的機率可以完成? 以及若投資風險的降低事宜(回應計畫),到底是否值得?

那具體作法會是類似這樣:

首先,你先把專案的WBS拆解好,WBS下各工作包的工作清單、工作邏輯、工作工期都規劃好,你會得出一個專案的基本排程。 這時候,這個計劃就可以倒入Risk Analysis程式中(或是在軟體中自己建立排程規劃也行)。

再來,你可能會在這份專案計畫中加入各類的不確定性。

比方說

1 工作本身的不確定性。

舉例而言,一項工作可能按照Beta的機率分佈,工期從3天到15天之間。

工期機率分佈與三點預估

2 工作是否存在的不確定性。

什麼是工作是否存在呢? 舉例來說,基礎開挖可能有一定比例會挖到地下水,這樣就得花時間抽水,也就會多一個抽水的工作。 在這案例中,就可以透過Task Existence的功能來模擬 - 一定機率是只有開挖,但另有一定機率會多增加一個抽水的工作。

3. 工作路徑分歧的不確定性。

什麼是路徑分歧呢? 舉例來說,材料進料後有一定比例的機率可能要驗退並重新等待,有一定比例的機率則可以直接進入Prototyping。 所以可以把兩條路徑都建立起來,給予分別的機率,然後模擬不同路徑分歧對專案的影響。 萬一我們選擇便宜的供應商導致,材料問題增加,對要徑是否會產生任何變化?

4. 邏輯上的不確定性。

所謂邏輯上的不確定性,指的是作業的前置任務有可能因為另一件事情發生而取消。 比方說某個設備我們想找當地的代理商購買。 可是若代理商沒貨,我們則可能跟國外詢問。 那這兩種可能性都可以排進計畫,可是每次專案執行只會有一種狀況發生。 要就是代理商有貨,我們跟他進貨;不然就是代理商沒貨,我們找海外。 所以船運的前面有可能是連結到任何一路線。 而這就是邏輯連結上的不確定性。

5. 資源的不確定性。

這應該很容易理解。 工程師在某一工作的投入可能介於50-70小時之間;特定溶劑在某一工作所需要的量可能介於10kg-12kg之間。

6. 風險造成的不確定性

那最大的重頭戲,自然就是專案的風險清單了。 PMBOK中界定了六個流程。 從Plan Risk Management、Identify Risks、Perform Qualitative Risk Analysis、Perform Quantitative Risk Analysis、Plan Risk Responses、到Control Risks。 認真要做風險管理的,也可以把這整套流程需求都在工具中展現。

比方說,專案的風險清單:

專案的風險清單

(風險清單,涵蓋風險描述與RBS與處理前後的風險評分。 上圖,點選可放大)

風險評分定義與風險矩陣:

風險評分定義與風險矩陣

(上圖,點選可放大)

風險與工作的連結:

風險清單與工作排程整合後

(上圖紅色的部份都是風險清單的內容。 透過工具我們把風險清單跟工作清單整合在一起。 這樣在做風險排程時,這些風險若被亂數觸發時,則會拉長或縮短相關工作的工期。)

7. 天候模擬

模擬天候對專案可能造成的影響。 以台灣而言,颱風可能會造成工地現場無法施工。 美加日本最近的大雪,則是另一個例子。 所以這類天候造成的專案停工,則可以以此來模擬。

天候模擬

(上圖,天候模擬。 點選可放大)

最後,當這些「不確定性」(無論是工期本身的不確定性,或是源自於風險的不確定性)都設定完成後,即可以開始讓電腦根據這樣的專案規劃默默的去執行幾千或幾萬次。 然後告訴我們按照這樣的機率分佈,到底專案最有可能在何時完成? 花多少錢? 總工期會是多少? 哪些工作最可能變成要徑? 原來設想的完工日到底有多少%的信心程度?

Distribution Graph

(上圖,這案子把不確定性都考慮進去後,最可能的完成時間是09年10月06日之後。 原來設定的完成日(黃線)則不到5%的完成機率。 備註:上圖點選可以放大。)

回應計畫的成效比對

此外,我們對於風險可能會做回應計畫(還記得 Acceptance、Mitigation、Transfer、Avoidance這些手法嗎?)。 所以我們也得分析,風險回應計畫的效果如何。 舉例而言,我們投入了$50萬買額外的設備,這樣的設備是否有效的縮短工期、還是其實沒變? 如果沒變,我們這50萬是否應該分散到其他的風險回應計畫中? 所以反覆實驗後,我們會更清楚風險預算該如何分配。

回應計畫對於時程影響前後比較圖

(上圖,風險回應計畫前後的比較。 橘色圖是風險回應計畫前的完成日狀況,綠色則是風險回應計畫後。 所以我們可以比較某項投資到底對於不確定性的收斂程度有起怎麼樣的作用。 點圖可放大)

所以,蒙地卡羅風險分析就如同透過統計與模擬比賽來組運動隊一樣。 電腦沒辦法「自動」辨識專案哪裡有風險。 可是若你提供清楚的統計數據,電腦則可以靠大量的模擬,告訴你這些不確定性的影響可能在哪裡,最可能的完成時間大約在何時,並分析回應計畫到底是否值得,又是否應該把這預算移去他用。

希望這樣的一篇文章,能幫助大家更了解這樣的分析手法。 :)

 

沒營養的後記:雖然最上面的運動遊戲圖片是取自於SEGA的Football Manager,但我為了寫這篇想了解這類運動模擬遊戲,還真的去買了一套EA的FIFA Manager 14來試玩呢。 光為這點,大家就該好好讚一下了吧? :P

封面圖片來源:http://3.bp.blogspot.com/-N9GApXtfwe4/UlCqKkfBW0I/AAAAAAAAC28/1bo-deu8BvU/s1600/dice1.jpg

若有轉貼需求,請來信討論。 轉貼時禁止修改內容及標題、須保持所有連結、禁止商業使用,並且必須註明原文標題、連結、及作者訊息。
覺得這篇文章好嗎? 請分享給您的朋友
歡迎「讚」一下我們的粉絲專頁,接收最新文章!
張國洋 Joe Chang

現為識博管理顧問執行長,也在台灣百大上市櫃公司擔任管理講師與專案顧問。歷年客戶包含工研院、台積電、廣達、富智康、光寶集團、台灣大哥大、遠傳電信、中鼎工程、建國工程、台橡公司、大同公司、三陽工業、TVBS、特力屋集團、城邦集團、誠品集團等。 為了對抗雙魚座的感性,一直在努力強化理性思維與邏輯思考。 相信邏輯發展能解構任何事物,並讓我們找到合宜的人生策略與方向。

Joe G+ ICON Joe LInkin ICON

4 則讀友回應

  1. PakLam 2014-09-15 21:02:41 第 4 則

    @Mel Fan 作為聯結 工作清單 及 風險清單, @RISK for Project Management 的確能發揮功效, 透過 @RISK for Excel 及 MS Project 可輕鬆連結兩者。 而且亦可從此工具設定distributions, simulate, fit distributions to data, define correlations, sensitivity analysis 以整合分析至 MS Project, 相信足以提高在實務上的效果, 增加參考價值

    http://www.palisade.com/projectriskmanagement/

  2. Mel Fan 2014-03-26 21:56:09 第 3 則

    定量風險分析一直都有二個主要問題,PMBOK也一直沒有說清楚(到2012版仍然如此),其一是「工作清單」與「風險清單」要怎麼聯結?本文提到可以透過「工具」,可以請教這裡所謂的工具指的是什麼嗎?其二為定性分析的評估結果(紅、黃、綠)要如何轉換為機率分配的參數,使得每個有風險的工作之時程(或成本)估計值,可以依據不同的風險程度得到適合且一致的機率分配?這兩個問題如果無法解決,定量分析(蒙地卡羅法)跑出來的結果在實務上是否有足夠的參考價值就值得商榷了。一點淺見與大家分享!

  3. 邱奕浦 2014-02-24 19:24:41 第 2 則

    Joe大,那你的球隊勝率有確實提升嗎??

    • Joe Chang 2014-02-26 15:52:43

      哈哈 我得說FIFA Manager好複雜~
      我試了一下了解內容,把文章寫好後,就回頭玩FIFA14了 XD

  4. CHELSEA FAN 2014-02-24 13:32:22 第 1 則

    這年頭打352陣型不多了XDD
    不過TELLO是個好球員!!!

    其實講到足球遊戲
    這幾年球壇確實也有一些職業球隊在做球員的買賣會參考遊戲裡面的數值
    特別是一些比較窮困沒有資金建立強大球探系統的球會

    也有許多遊戲中擁有巨大潛力值的年輕球員在現實中卻一直打不出成果最後成為碌碌之才
    或者是球員遇到了不適合的打法、不適合的教練會參考遊戲裡面的數值或者是不適合的隊友而產生的低潮
    也許來自人與人之間的互動上的變因還是很難以在這類型的模擬中呈現出來吧
    而足球球員的生涯又是如此的短
    幾乎是成年後換過三四次的球隊後就差不多就要結束
    好險對一般普羅大眾的我們來說
    人生並不會這麼的嚴刻

    • Joe Chang 2014-02-26 15:51:14

      職業球員真的是風險很高的職業
      先不談生涯很短
      就算真的進入職業隊,任何小受傷可能就玩完了
      訓練十幾二十年的努力也一下白費了~
      真是很辛苦的領域啊~~