蒙特卡洛模擬(Monte Carlo Simulation)淺析

蒙特卡洛模擬作為一種常用的模擬技術,在PMBOK里經常可以看到它的身影,其主要出現在風險管理知識領域中的定量風險分析過程,是用于做項目定量風險分析的工具之一,同時蒙特卡洛模擬也可以用于估算進度或成本以及制定進度計劃等。(全文共?2741?字,閱讀大約需要?10?分鐘。)

蒙特卡洛模擬由于在PMBOK里講得較為簡單和抽象,理解起來稍微有點困難。為了讓大家更加通透地理解蒙特卡洛模擬的作用及其過程原理,本文試圖通過一個簡單的例子來實操模擬一下這個蒙特卡洛模擬的過程。

一、簡要介紹

到底什么是蒙特卡洛模擬呢?蒙特卡洛模擬是一種統計學的方法,用來模擬大量數據。可能童鞋們看到這個定義更暈了,到底什么是統計學方法,模擬大量數據干什么?別著急下面會慢慢一一道來。

我們先來簡單介紹一下關于蒙特卡洛模擬的一些背景知識。蒙特卡洛模擬是在二戰期間,當時在原子彈研制的項目中,為了模擬裂變物質的中子隨機擴散現象,由美國數學家馮·諾伊曼(學計算機的同學都知道這位馮同志的大名,人稱“計算機之父”)和烏拉姆等發明的一種統計方法。之所以起名叫蒙特卡洛模擬,是因為蒙特卡洛在是歐洲袖珍國家摩納哥一個城市,這個城市在當時是非常著名的一個賭城。因為賭博的本質是算概率,而蒙特卡洛模擬正是以概率為基礎的一種方法,所以用賭城的名字為這種方法命名。

蒙特卡洛模擬是在計算機上模擬項目實施了成千上萬次,每次輸入都隨機選擇輸入值。由于每個輸入很多時候本身就是一個估計區間,因此計算機模型會隨機選取每個輸入的該區間內的任意值,通過大量成千上萬甚至百萬次的模擬次數,最終得出一個累計概率分布圖,這個就是蒙特卡洛模擬。

二、 模擬過程

蒙特卡洛模擬在實際的項目管理應用中一般較為復雜,而且很多時候用在專業的項目風險分析軟件里面(比如Pertmaster),通常用在較為大型的項目和企業中。我們這篇文章只是為了讓童鞋們對于蒙特卡洛模擬有個更為直觀清晰的認識,同時鑒于篇幅和不至于讓講解過于晦澀,所以這兒我們只是準備用Excel工具來簡單地模擬和介紹一下蒙特卡洛模擬的實施操作過程,這樣大家也能對蒙特卡洛模擬有個更為直觀地了解。

我們以定量分析項目總持續時間為例來簡要介紹一下蒙特卡洛模擬。比如說我們現在有個項目,該項目共有三個WBS要素分別是設計、建造和測試,為了簡單起見我們假設這三個WBS要素的預估的工期概率分布都呈標準正態分布,各自的平均工期、標準差以及最悲觀、最可能和最樂觀的估計工期如下圖所示(我們這兒簡單地認為基于正態分布的工期的最悲觀/最樂觀的估算工期定在均值正負3個標準差的位置),而且三者之間都是完成到開始的邏輯關系,這樣整個項目工期就是這三個WBS要素工期之和。

現在我們需要用蒙特卡洛模擬來以這三個要素的工期的分布為輸入,來模擬得到整個項目的工期概率分布圖。由于設計、建造和測試這三個要素都是呈標準正態分布,我們可以根據上面表格中的各自的均值和標準差數據大致畫出這三個要素工期的概率分布圖如下面的樣子:

我們要用蒙特卡洛模擬來定量分析整個項目的工期進度風險。于是我們用計算機來模擬項目的實施,我們的思路是:第一步:隨機選取每個WBS要素的工期值作為輸入(因為每個要素的工期不是恒定的,本身就是一個估計的分布區間);第二步:然后把三個WBS要素的值相加得到整個項目的工期值,這樣就完成了一次模擬;第三步:重復第一二步,然后就這樣一次一次的模擬,需要模擬成千上萬次最終得到成千上萬個整個項目總工期的數值;第四步:再對這些海量模擬次數得到海量總工期數值進行統計分析,得出其最終的項目總工期估計的概率分布。

我們先做第一步。第一步需要我們先產生這些每個要素的隨機工期值。Excel里面有個函數可以生成呈正態分布的隨機數,就是NORMINV。我們的設計要素的第一個隨機工期取值的公式就是這么寫的:=ROUND(NORMINV(RAND(),$E$3,$F$3),0),如下圖所示:

解釋一下這個公式:ROUND(NORMINV(RAND(),$E$3,$F$3),0),RAND()?是生成0到1之間的隨機數,NORMINV(RAND(),$E$3,$F$3)?是生成呈均值為E3(圖中為14)、標準差為F3(圖中為2)的正態分布的隨機數,ROUND?是四舍五入的意思,這樣回車我們就生成了設計這個要素的第一個隨機工期值17。同理我們把這個公式值往下拉,復制400次(我們此例中模擬400次),就得到了400個呈正態分布的隨機工期值;然后建造和測試的隨機工期值也是照葫蘆畫瓢,這樣我們就得到了這3個要素的400次模擬的隨機值,再每次的3個要素的隨機值相加得到總工期的模擬值,如下圖所示:

此時前三步就做完了得到了總工期的一組數據(400個)。現在開始做第四步對這組數據做統計分析和作圖。

4.1?先把總工期這一列(圖中E列)400個值拷貝一份,粘貼數值到另外一列(注意粘貼的時候選擇“選擇性粘貼”然后選“值”,因為隨機數隨時變動,這兒需要把值固定下來),用MAX和MIN函數計算出這一列400個值的最大值為76,和最小值為45,作為分組依據,然后在旁邊?I?列依次升序排列42-78(前后多取幾個數值圖像更完整)這部分數值作為分組數據,如下圖所示:

4.2?然后計算每個分組數據在總工期這組數據中出現的概率,這兒需要用到函數FREQUENCY,計算概率的公式為:=FREQUENCY(H8:H407,I8:I40)/400,意思是統計每個分組數據在總工期這一組數據中出現的次數,再除以模擬總次數400就得到這個分組數據出現的概率。再計算一個累積概率值,累積概率值就是前面的所有單個概率值加起來的概率,比如算分組數據46的累積概率值就是把46以下的數值的概率值全部加起來,這樣我們就得到關于分組數據在總工期這組數據中出現的概率和累積概率的數據,如下表格所示:

4.3?通過對上面表格的數據,以分組數據為X軸,出現概率和累積概率的值為Y軸于是可以做出下面關于總工期的概率分布圖:

紅色柱狀圖是整個項目估計剛好多少天完工的概率數據,比如圖中60天對應的概率大約是11%,表示整個項目剛好60天完工的概率是11%;藍線就是我們PMBOK上定量風險分析得到的那張S曲線圖,也是我們最終蒙特卡洛模擬需要得到的最終的模擬輸出:總工期的概率分布圖。通過這個S曲線,我們可以預測整個項目在多少天內完工的概率。比如我們需要預測整個項目在56天完工的概率,通過S曲線了解到56天對應的累積概率是34%左右,也就是整個項目56天內完工的概率是34%,那么56天內不能完工的概率就是1-34%=66%,這就是風險。如果覺得風險太高無法接受,那么我們可以把工期適當規劃長一些,比如60天,這樣查詢S曲線可以得到60天內整個項目完工的概率是70%,這樣就只有剩下30%的不能按時完工的風險,項目在進度方面的風險就大大降低了。

好了,至此關于蒙特卡洛模擬的基本概念和操作流程就說完了,希望能通過本文對大家學習和理解蒙特卡洛模擬有所助益,如有任何疑問、建議或指正,歡迎留言交流,謝謝閱讀。

推薦閱讀作者更多的文章(直接點擊下面的標題):

詳解掙值管理(EVM)

詳解凈現值(NPV)與內部報酬率(IRR)

什么是邊際效益遞減規律?

“活動”失蹤了嗎? | 《PMBOK?指南》第6版解讀

如何用通俗的案例解釋「借殼上市」?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容