在【CH6. 建立模型以衡量風險】這章裡,作者介紹了蒙地卡羅法,可以根據機率產生模擬情境,用來分析風險。
本章是寫給「從來不知道這個方法是什麼」的人(this is me!),作者介紹了基本的實作過程。
作者在 https://www.howtomeasureanything.com/ 提供了完整的試算表下載,其實對熟悉 excel 的人來說,直接進去 excel 應該就看得出來分析的流程了。
為了方便,我將 excel 檔案重新上傳至自己的 Google sheet。
你正在考慮租下一台新機器,要用在某個製造過程。
租賃條件是:
因此,你需要考慮:
經過校準訓練的估計人員提供了相關參數的範圍:
每年節省 = ( 維護節省 + 勞工節省 + 原物料節省 ) x 生產水準
接下來作者介紹如何在 excel 上實作模型。
跑出來的模型看起來像這樣:
首先是根據估算範圍,為每個參數隨機產生數字,作者在此例中隨機產生了 15000 個 scenario
在此例中,作者在產生隨機數字時,選擇了常態分配:
NORMINV(RAND(), A, B)
這裡的標準差 3.29 是作者直接給的 XD
接著根據每個 scenario,來計算當年的 Savings,並判斷是否有打平成本,也就是 Breakeven met? 欄位。
最後,根據「Breakeven met?」的平均數獲得 86% 的機率,也就是有 14% 的機率無法打平成本。
同時,根據 Savings 欄位,整理成每千美元為單位的長條圖:
完整試算表 (Google sheet) 看起來像這樣:
上例中使用常態分配,在這裡作者討論了需要使用其他型態的例子:
由於這是不連續的事件,是重大、突然的需求下降,就不適用常態分配。
此時需要在表格中增加新的欄位來模擬事件的發生,以及事件是在哪一個月份發生的,然後根據狀況來改變 Production level 的值:
此時 contract loss 的二元分配的公式是 if(rand() < 10%, 1, 0)
而「該年度剩餘月份 (Months Remaining in Year When Contract is Terminated)」則採用均等分配,概念是:
rand() * (上限 - 下限) + 上限
以上是本書對蒙地卡羅模擬的介紹。
作者表示,有時候會需要一些快捷的作法,但請不要直接把「樂觀的數字」 & 「悲觀的數字」加總起來直接當成上下限。這樣在商業案例上產生的結果會太誇張。
作者另外介紹了一個快捷算法,可以在「全都是常態分配」的前提下,不用跑模擬就能快速獲得成本與效益,but 他沒解釋為什麼這樣算,這裡就筆記一下而己⋯⋯
本章剩下的段落講了一些行業問題並進行宣導,但因為我對行業背景一竅不通,所以這邊也不太知道重點是什麼,這就略過了 XD
我看 Amazon 書評上有人說這本書是「他看過對蒙地卡羅法最好懂的介紹」,唉這應該就是有背景知識的人可以下的評論吧,我在人生中就看過這唯一一個例子而己,例子是懂了,但整體而言究竟知道了什麼呢 XD
總之,進度推到 140 頁了,即將跨過中線........