機率分配 - Part 1

系統模擬之精彩處,在於他不是數學模式(你要他是也可以,在驗證階段),而是基於模擬情境,應用符合實務之機率分配函數。舉凡系統中所有的數字,都可以試圖找到一個恰當的機率分配函數來代表他。這一塊真的不容易簡易說清楚,光是看到一堆機率函數就傻眼了,甚至來龍去脈都搞不清楚。
什麼是恰當呢?既然是隨機,每次結果就會不一樣,既然不一樣,那要怎麼說對與錯呢?所以,這個取決於你對模型的精準度要求,也就是你能夠接受的誤差範圍。
這下子,問題又來了,什麼是你能夠接受的誤差範圍呢?在這邊講也講不完,到後期講到模型最佳化時,也許會試圖來說清楚,這邊就按下不表。這麼說吧,你有閒工夫,去收集到最完整的原始資料,以統計的手法,找出最適之機率分配函數,然後在應用此機率分配函數到模型中,來產生數據資料。繞口了吧。
好吧,那就偷懶,其實我們只會用到幾個常用的機率分配函數。甚至說,試圖用大數法則說服自己,通通都是Normal 分配。要不就再偷懶一點直接用Triangular分配,什麼,也還是不要,那~用Random吧。只要最後的產出資料落在你可以接受的誤差範圍之內,沒有人會在意你用的是什麼分配。當然,這個誤差範圍不能太離譜呀。你的模型使用「分鐘」做模擬單位時間,卻說可以接受「小時」的誤差範圍,這就太離譜了。若你的模型用「天數」作模擬單位時間,誤差在30分鐘都是合理範圍。抱歉,還是要說,看你對於模擬精準度的要求。

原始資料收集是建置模擬系統的基礎工作之一。是苦工,卻不可逃避。然而,原始資料到應用於模型中仍然有些差距。下圖是我們收集病患進到診所的原始資料。請稍微注意一下數據內容,是的,都是時間點。因為,就收集資料的角度來說,每一個事件的發生或結束,最方便的方法,就是紀錄當時的時間。
若上一篇有跟到,有理解到的話,這些資料並不能直接使用到模擬系統中。補充一下,就Anylogic來說,他是可以直接使用原始資料。可能需要回顧一下模擬時間這篇所題的觀念。
在模擬系統中,我們想要使用的資料是:
  1. 這些病患到達診所的情境會符合什麼樣的機率分配。
  2. 從進到診所到被醫師看診,他願意等候的時間是符合什麼樣的機率分配。
  3. 從他進到診間到離開診間,中間接受醫師看診的服務時間是符合什麼樣的機率分配。
  4. 從他離開診間到離開診所,中間他停留在診所內的時間又是符合什麼樣的機率分配。
太多了,如果你的模型精確度要求很高,那光是在診間的看診時間,都可以被切割是不同小單元。
所以,上述原始資料需要經過我們整理,以到達率為例,可以整理出下圖。
接著你該怎麼辦呢?有兩個基礎需要先建立。第一個概念在前一篇等候理論的後段已經大略提到,也就是到達率,你要採用什麼樣的到達率模式呢?
第二個觀念,若你有修過統計的話,應該可以知道,那就是要先建立「次數分配」。

講了這一堆,也許就有機會來解釋「繞口」的那一段,也就是「次數分配-直方圖」與「機率分配」之間的對應與應用關係了。


留言

這個網誌中的熱門文章

等候理論

AnyLogic簡單介紹

機率分配 - Part 6 Poisson