蒙地卡羅誤差(Monte Carlo error)
當你用平均隨機樣本來估計某個量時,你的答案本身就是隨機的——換一批新的隨機抽樣再跑一次,你會得到略為不同的數字。自然的問題是:我的估計大概偏離多少?蒙地卡羅誤差就是那個隨機抖動的大小,而美妙之處在於模擬能用同一批樣本「估計自己的誤差」,給你一條誠實的誤差棒,而非赤裸裸的猜測。
以下是精確的陳述,它建立在中央極限定理上。設你的估計是某個真標準差為 sigma 的量的 N 個獨立抽樣的樣本平均。這個估計自身的標準差——標準誤——是 sigma / sqrt(N)。你不知道 sigma,但可用抽樣的樣本標準差 s 來估它,所以回報的誤差棒是 s / sqrt(N)。中央極限定理說估計約略呈以真值為中心的常態分布,所以 95% 信賴區間約為估計值正負 1.96 * s / sqrt(N):大致上,真值落在你估計值的兩個標準誤之內的機會約為二十次中十九次。這正是為何蒙地卡羅結果永遠該附上誤差棒,而不只是一個數字。
從公式可導出兩點誠實的話。其一,分母裡的 sqrt(N) 是蒙地卡羅之所以慢的根源:要把誤差砍半你得把 N 變四倍,要多一位十進位有效位你得做 100 倍的功——又是 1/sqrt(N) 定律。其二,誤差由 sigma(被積函數的變異性)掌控,而這正是變異數縮減技巧(重要性取樣、控制變數、對偶與分層取樣)所拉的槓桿:把 sigma 縮小,你就在「相同的 N」下縮小誤差,有時效果驚人。代價背後的代價:這些誤差棒假設樣本獨立且變異數有限;相關的抽樣(如 MCMC)或變異數無限的厚尾被積函數,會破壞乾淨的 s/sqrt(N) 公式,需要更謹慎處理。
從 N = 10,000 個抽樣估計某量的平均,得樣本平均 2.713、樣本標準差 s = 1.5。標準誤為 1.5 / sqrt(10000) = 0.015,所以你回報 2.713 正負 0.030(95% 區間)。要把區間縮到正負 0.003,你得用 N = 1,000,000——多一百倍的樣本。
誤差棒 s/sqrt(N) 讓模擬能回報自己答案有多可信。
誤差棒 s/sqrt(N) 假設樣本「獨立」且變異數「有限」。相關抽樣(MCMC)會讓真實誤差遠超過 s/sqrt(N),而變異數無限的厚尾被積函數則徹底破壞中央極限定理的保證。