iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
自我挑戰組

開卷計劃:做一個高手夢系列 第 11

如何衡量萬事萬物 (5) 蒙地卡羅模擬法

  • 分享至 

  • twitterImage
  •  

在【CH6. 建立模型以衡量風險】這章裡,作者介紹了蒙地卡羅法,可以根據機率產生模擬情境,用來分析風險。

本章是寫給「從來不知道這個方法是什麼」的人(this is me!),作者介紹了基本的實作過程。

示範檔案

作者在 https://www.howtomeasureanything.com/ 提供了完整的試算表下載,其實對熟悉 excel 的人來說,直接進去 excel 應該就看得出來分析的流程了。

為了方便,我將 excel 檔案重新上傳至自己的 Google sheet

情境

你正在考慮租下一台新機器,要用在某個製造過程。

租賃條件是:

  • 一年 40 萬美元
  • 不能提早解約

因此,你需要考慮:

  • 如果不能打平成本,在未來一年內,會受限於租約
  • 但先進的設計可能節省的是:
    • 勞工成本
    • 原物料成本
    • 維護成本

參數範圍

經過校準訓練的估計人員提供了相關參數的範圍:

  • 維護節省 (MS):每單位 10~20 美元
  • 勞工節省 (LS):每單元 -2~8 美元
  • 原物料節省 (RMS):每單位 3~9 美元
  • 生產水準 (PL):每年 15000~35000 單元
  • 每年租金:40 萬美元

每年節省 = ( 維護節省 + 勞工節省 + 原物料節省 ) x 生產水準

模擬步驟

接下來作者介紹如何在 excel 上實作模型。

跑出來的模型看起來像這樣:

https://ithelp.ithome.com.tw/upload/images/20210926/20129237ciDzHc2PxW.png

首先是根據估算範圍,為每個參數隨機產生數字,作者在此例中隨機產生了 15000 個 scenario

在此例中,作者在產生隨機數字時,選擇了常態分配:

https://ithelp.ithome.com.tw/upload/images/20210926/20129237d8xcffEow2.png

  • 常態分配的公式為 NORMINV(RAND(), A, B)
    • A = 平均值 = (90% CI 上限 + 90% CI 下限) / 2
    • B = 標準差 = (90% CI 上限 + 90% CI 下限) / 3.29

這裡的標準差 3.29 是作者直接給的 XD

接著根據每個 scenario,來計算當年的 Savings,並判斷是否有打平成本,也就是 Breakeven met? 欄位。

最後,根據「Breakeven met?」的平均數獲得 86% 的機率,也就是有 14% 的機率無法打平成本。

https://ithelp.ithome.com.tw/upload/images/20210926/2012923766b2un9GLe.png

同時,根據 Savings 欄位,整理成每千美元為單位的長條圖:

https://ithelp.ithome.com.tw/upload/images/20210926/20129237VN7u4Rrsbf.png

完整試算表 (Google sheet) 看起來像這樣:

https://ithelp.ithome.com.tw/upload/images/20210926/20129237ZJdOFgn61C.png

討論:其他的分配型態

上例中使用常態分配,在這裡作者討論了需要使用其他型態的例子:

  • 如果損失「大客戶」,每個月的需求 (也就是生產水準) 就會減少 1000 單元
  • 上述情境發生的機率為 10%

由於這是不連續的事件,是重大、突然的需求下降,就不適用常態分配。

此時需要在表格中增加新的欄位來模擬事件的發生,以及事件是在哪一個月份發生的,然後根據狀況來改變 Production level 的值:

https://ithelp.ithome.com.tw/upload/images/20210926/20129237osjoas9wU5.png

此時 contract loss 的二元分配的公式是 if(rand() < 10%, 1, 0)

而「該年度剩餘月份 (Months Remaining in Year When Contract is Terminated)」則採用均等分配,概念是:

  • 任何日子都可能發生「喪失合約」事件
  • 公式:rand() * (上限 - 下限) + 上限
    • 上限是 12 個月
    • 下限是 0

https://ithelp.ithome.com.tw/upload/images/20210926/20129237PnG6ZssGKo.png

以上是本書對蒙地卡羅模擬的介紹。

其他

作者表示,有時候會需要一些快捷的作法,但請不要直接把「樂觀的數字」 & 「悲觀的數字」加總起來直接當成上下限。這樣在商業案例上產生的結果會太誇張。

作者另外介紹了一個快捷算法,可以在「全都是常態分配」的前提下,不用跑模擬就能快速獲得成本與效益,but 他沒解釋為什麼這樣算,這裡就筆記一下而己⋯⋯

  1. 將三個成本的上限減去中間值
    1. 維護節省 (MS):每單位 10~20 美元 → 20-15 = 5
    2. 勞工節省 (LS):每單元 -2~8 美元 → 5
    3. 原物料節省 (RMS):每單位 3~9 美元 → 3
  2. 將數字平方後加增 25+25+9=59
  3. 將總額開平方 59^0.5 = 7.68
  4. 將三項平均數加總 15+3+6 = 24
  5. 將 4 減掉 3,產生總額的上限與下限
    1. 上限:24 + 7.68 = 31.68
    2. 下限:24 - 7.68 = 16.32

本章剩下的段落講了一些行業問題並進行宣導,但因為我對行業背景一竅不通,所以這邊也不太知道重點是什麼,這就略過了 XD


我看 Amazon 書評上有人說這本書是「他看過對蒙地卡羅法最好懂的介紹」,唉這應該就是有背景知識的人可以下的評論吧,我在人生中就看過這唯一一個例子而己,例子是懂了,但整體而言究竟知道了什麼呢 XD

總之,進度推到 140 頁了,即將跨過中線........


上一篇
如何衡量萬事萬物 (4) 校準過度自信的估算
下一篇
如何衡量萬事萬物 (6) 衡量工具
系列文
開卷計劃:做一個高手夢30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
TD
iT邦新手 4 級 ‧ 2021-09-27 22:54:08

喪生合約

喪失合約?

0
TD
iT邦新手 4 級 ‧ 2021-09-27 22:55:05

我也是第一次看到蒙地卡羅實際執行的方法,用 Google sheet 呈現還不錯

我要留言

立即登入留言