本文分享了由Vitor Lemos編寫的關于AnyLogic的使用實踐技巧,希望能為正在學習或使用AnyLogic的用戶提供幫助。post/the-simulation-model-life-cycle-part-6-analyze-the-results
作者:Jaco-Ben Vosloo
更新:Jul 13, 2022
閱讀時間:5 min
本系列文旨在為基于仿真的項目的生命周期進行說明,提供最佳實踐和實用建議。本文是7部分系列文的第6部分。
注意:在后面的步驟中確實會“返回”前面的步驟中執行一些活動,但不需要重做整個步驟。 上面列出的步驟是典型項目遵循的一般步驟。 在所有步驟中,您都可以后退并重新訪問之前的步驟,但在完成至少 80%-90% 的步驟之前,您不太可能跳過一個步驟或向前移動。
分析仿真模型的輸出可以是一個完整的項目。復雜系統的超大模型通常具有大量輸出文件,包含了系統各個部分的大量數據。本文主要是提供一組高層次的指引,在這一階段為您提供幫助。
在每一項分析中,都要將模型目標放在最前沿,這一點非常關鍵。 另外,要注意,到此階段,我們不在校核和驗證階段。因此,除非在主輸出中發現一些需要解釋的異常,否則我們不會查去逐一細查每一個輸出結果。
以本系列的示例模型為例,我們的目標是衡量隊列長度的影響,因此我們的分析應該集中在這個指標上。而所有其他分析都是試圖解釋我們在隊列長度中所看到變化的副產品。
下面是一個非常簡潔的表格示例,顯示了從多服務臺多隊列設置到多服務臺單隊列設置的增量。
正如我們所看到的,多服務臺單隊列設置顯示隊列長度的最大值和平均值都在減少。
如果結果有疑問,特別是如果它與預期的結果相反,我們可以深入研究其他輸出。
當結果與預期相反或您無法解釋為什么會取得特定結果時。
保證您的數據采用易于獲取的格式并能夠在Excel中打開,這樣您可以輕松創建數據透視表、繪制圖表并進行簡單的統計分析。但是,如果數據量太大(例如超過 140 萬行數據),將需要使用一些專門的工具,如 R、Python、Tableau 或其他工具。
在我們的示例中,可以是將隊列長度與一天中的時間進行比較,查看它是否符合期望。
在前一點的基礎上,當您以不同的方式查看數據時,您也需要以不同的方式對其進行分析。
第一步是進行基礎的數據統計分析。 對識別為與模型目標相關的每個輸出進行統計分析,查看其最小值、平均值和最大值,分析這些值是否有意義?是否與您的預期一致?
下一步可以畫一些圖表,例如,可以畫一個直方圖,這樣您就可以看到數據的分布。接下來,您可以例如為其中一次迭代繪制時間序列圖。
最好的做法是讓另一雙眼睛查看您的數據。首選是其他團隊成員,特別是一些對流程和數據更敏感的運營人員,可以讓其為創建哪些數據比較提供建議。
我特別引用了“專家”一詞,是要強調一個事實,即你的結果、分析和發現不僅可以由真正的專家,而且也可以由那些相信自己的專家進行雙重檢查,從而獲得價值。通常,完全脫離流程的人可以指出一些最基本的問題,幫助您更好地構建分析,尋找模型中的錯誤,或者只是添加一個額外的模型輸出來幫助理解。
許多人經常會忽略的一個關鍵要求是確保分析是可重現的。這是科學方法的關鍵要求,但也有許多實際原因需要您的分析具有可重復性。 很多時候,項目的設計發生了變化,或者模型中發現了一個小錯誤,現在您需要重新進行分析。 如果您的分析是真正可重現的,那么這應該不是問題。 只需重新運行模型,獲取輸出并將其放入(希望是自動化的)分析管道中。
讓分析可重現的最佳實踐是對您的分析進行編碼。 如果您使用 Excel 等工具進行分析,則可以通過使用公式和數據透視表甚至 VBA 代碼進行結構良好的數據分析來實現。 如果您使用 Python 或 R 等工具,則應將分析步驟編碼到腳本中。
在本文中,我們研究了一些分析仿真模型輸出數據的準則。 與我們前一篇實驗階段的帖子相比,這絕對降低了強度。在下一篇文章也就是本系列的最后一篇文章中,我們將通過另一篇簡短的文章回歸主題,介紹一些用于展示結果的指南。
請記住,在此階段,您很可能會返回模型并添加更多輸出,甚至在模型中匯總一些輸出并僅輸出匯總數據。 如果您繼續在模型之外對數據進行相同的分析,大多數時候會得到相同的結果。