我得到了同樣的問題,在蟒蛇的工作,我認爲計算機上浮點運算的精度有限,擁有大量的權力,也沒有幫助。我將剪切並粘貼我的Python代碼和我得到的結果。此代碼嘗試計算標準法線的前20個時刻。總之,我認爲計算分佈的高階矩是不容易的,「高階」在這裏意味着大於10左右。在另一個實驗中,我試圖通過繪製越來越多的樣本來減少我在第18次得到的差異,但是這並不實際,或者是給我的「普通」計算機。
N = 1000000
w = np.random.normal(size=N).astype("float128")
for i in range(20):
print i, mean(w**i) # simply computing the mean of the data to the power of i
爲您提供:
0 1.0
1 0.000342014729693
2 1.00124397377
3 0.000140133725668
4 3.00334304532
5 0.00506625342217
6 15.0227401941
7 0.0238395446636
8 105.310071549
9 -0.803915389936
10 948.126995798
11 -34.8374820713
12 10370.6527554
13 -1013.23231638
14 132288.117911
15 -26403.9090218
16 1905267.02257
17 -658590.680295
18 30190439.4783
19 -16101299.7354
但正確的時刻是:1,0,1,0,3,0,15,0,105,0,945,0,10395,0 ,135135,0,2027025,0,34459425,0,654729075.
它不是數值不精確的問題:它是高階矩的方差爆炸。 – 2012-11-23 00:03:47
但是在這裏,我給了自己大量的N個標準正態分佈的隨機數,例如計算它們的18次方,然後計算其平均值。在這個過程中,如果我增加N,我不應該越來越接近第18個時刻的真實值嗎? – Frank 2012-11-23 00:19:25
是的,但你必須增加它*很多*。 – 2012-11-23 03:02:23