2010-05-26 117 views
14

什麼時候應該使用蒙特卡羅方法?爲什麼使用蒙特卡洛方法?

例如,爲什麼喬爾決定在Evidence Based Scheduling上使用蒙特卡洛方法,而不是有條不紊地處理過去一年的所有用戶數據?

+0

你是什麼意思'有條不紊'處理用戶數據?隨機樣本是添加鐘形曲線的一個非常基本的方法,你會怎麼做? – amwinter 2010-05-29 11:28:27

+2

難道你不能處理所有可用的數據,並提出相同的統計數據:「75%的數據大於X,50%的數據大於Y,25%的數據大於Z」? – Gili 2010-05-30 17:47:51

回答

12

假設你想估計一些感興趣的數量。在Joel的例子中,「發貨日期」就是你想估計的。在大多數情況下,存在影響我們估計的隨機因素。

當你有一個隨機數時,你通常想知道它的平均值和標準差,以便你可以採取適當的行動。在簡單情況下,您可以將數量建模爲標準分佈(例如,正態分佈),其中存在平均值和標準偏差的解析公式。然而,在許多情況下,分析公式不存在。在這種情況下,我們採用模擬來代替均值和標準差的分析解。我們的想法是:

步驟1:生成,使用適當的分佈

步驟2影響的關注量的因素:所關注計算量

重複步驟1分2多次和計算經驗平均和你想知道的標準偏差。

以上是迄今爲止蒙特卡羅應用的典型應用。請參閱Jarrod提供的維基百科鏈接,瞭解幾個此類應用程序以及沒有固有隨機性(例如,估計pi)的有趣應用程序的一些示例。

+0

我喜歡你的答案,但你給的步驟非常模糊。你能不能讓他們更精確? – Gili 2010-06-23 00:04:04

+1

那麼,蒙特卡羅是一個有很多應用的廣闊領域。例如,假設您想獲得關於各種項目特性(例如,開發人員數量,目標操作系統等)和發貨時間(例如3個月,6個月等)的一些數據。您可能已經知道項目特徵與運送時間之間的關係。例如,Ship Times〜N(mu,sigma^2)I(Ship Times> 0)其中N(。)表示正態分佈,μ和σ是項目特性的函數,I(Ship Times> 0)表示事實發貨時間不能是負面的。 – vad 2010-06-23 02:10:41

+1

您可能想知道更改某些項目參數(例如,增加開發人員數量)對發貨時間的影響。不幸的是,截斷法線的均值不存在閉合表達式。所以,你會做的是: 第1步:生成截斷使用拒絕抽樣或逆變換方法 步驟2.存儲裝船時間(在這種情況下,第2步不涉及計算) 重複步驟1和2 N正常次並計算您在步驟2中存儲的運輸時間的平均值和標準差。 上面假定您知道項目參數與mu和sigma之間的關係。 – vad 2010-06-23 02:13:54

3

Wikipedia在蒙特卡洛模擬方法上有很好的文章。我幾次使用過蒙特卡羅 - 簡而言之,MC方法傾向於在嘗試使用非常隨機的樣本集來計算結果時給出準確的答案,而有些人通常會使用直覺來嘗試猜測趨勢。不幸的是,試圖解釋MC方法非常困難,所以查看文章。

+0

如果我有X遊戲的評級和沒有安裝的數據。 問題:預測y遊戲的安裝次數爲 這是使用MC模擬的正確情況嗎? – 2015-05-15 05:53:58

1

因爲在計劃編程任務時,估計通常分佈相當廣泛,所以統計處理它們更有意義。

如果我們選擇一個需要完成100個任務的項目,那麼估算中的誤差將會消失,並且最終會出現一個分佈圖,顯示項目完成的可能性。

它也規避了一些嚴重的問題,如任務緩衝和學生綜合症甚至進一步扭曲了結果。

2

有時候檢查所有的選項簡直是過分的。

16

蒙特卡洛方法通常使用when the dimensionality of the problem is too high for traditional schemes。 A 關於這個問題的介紹性文件是Persi Diaconis'The Markov Chain Monte Carlo Revolution

+0

有趣的紙張,但我很快就迷失在細節中。 – Gili 2010-06-23 00:02:17

+0

漂亮的紙張,但我不得不說,在2009年之後寫的MC論文的標題中使用「革命」的粒子物理學家似乎有點奇怪。我們一直在做這個足夠長的時間,Metropolis *是一個傳統的方案。 – dmckee 2011-04-05 23:19:36

+0

@dmckee我認爲,這篇論文的目的不僅在於應用數學家或統計學家,還包括其他領域的人員,如代數,分析等,其中蒙特卡洛方法並不是廣爲人知。 – jmbr 2011-04-07 15:23:34