all.moments功能奇怪的结果

时间:2012-03-22 19:00:27

标签: r statistics

我想计算分布的第n个时刻。我正在尝试在R中使用库'moment'的all.moments函数。我已经用这种方式测试了all.moments:

 library(moments)
 r<-rnorm(10000)
 rr<-all.moments(r,order.max=4)
 rr

 [1]  1.000000000  0.002403360  0.962201478 -0.022694670  2.852696159

在我看来,这不是真的,因为我知道第3和第4时刻在正态分布中必须为0。 我的错误在哪里?

3 个答案:

答案 0 :(得分:6)

第三个时刻是偏斜。你是对的:对于正态分布,这是零。由于您只是从正态分布中采样,因此结果将近似为零。

四阶矩是峰度。对于正态分布,这是3σ^ 4。在这种情况下,σ是1,所以你的结果应该是3,它就是。


要提高估算的准确性,请改善样本量。对于1e7观测的样本:

> library(moments)
> r <- rnorm(1e7)
> all.moments(r,order.max=4)
[1] 1.0000000000 0.0004028138 0.9995373115 0.0007276404 2.9976881271

答案 1 :(得分:1)

因为这只是期望而非准确,并且因为较高的时刻有很大的差异?

(参见@Andrie的答案,为什么第四个时刻(V5以下)甚至不接近于零。)

> library(moments)
> R <- t(replicate(50,all.moments(rnorm(1e4),order.max=4)))
> summary(R)
       V1          V2                  V3               V4            
 Min.   :1   Min.   :-0.024921   Min.   :0.9714   Min.   :-0.0987174  
 1st Qu.:1   1st Qu.:-0.009527   1st Qu.:0.9911   1st Qu.:-0.0341950  
 Median :1   Median : 0.001021   Median :0.9994   Median : 0.0067138  
 Mean   :1   Mean   :-0.001047   Mean   :1.0006   Mean   :-0.0002613  
 3rd Qu.:1   3rd Qu.: 0.004711   3rd Qu.:1.0147   3rd Qu.: 0.0299731  
 Max.   :1   Max.   : 0.023356   Max.   :1.0398   Max.   : 0.1283456  
       V5       
 Min.   :2.775  
 1st Qu.:2.921  
 Median :3.005  
 Mean   :3.007  
 3rd Qu.:3.092  
 Max.   :3.325  

答案 2 :(得分:0)

我遇到了同样的问题,在python中工作,我认为计算机上浮点运算的精度有限,尤其是拥有大量的权力,也没有帮助。我将剪切并粘贴我的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,34552525,0,654729075