对总和方差法的误解

时间:2018-07-04 15:50:13

标签: statistics variance

我正试图了解如何组合成批观测值的方差。我的理解是,您可以简单地根据sum variance law对它们进行求和。但是我的实验似乎与此定理不同。

这是使用的python代码:

import numpy as np
x = np.random.rand(100000)
expected = np.var(x)
print("expected:", expected)
for n in [2,4,5,10,20,40,50,100,1000]:
    s = np.split(x, n)
    sigma_sq = [np.var(v) for v in s]
    result = np.sum(sigma_sq)
    print("result", n, ":", result, "(", np.abs(result - expected), ")")

打印结果为:

expected: 0.0832224743666757
result 2 : 0.16644455708841321 ( 0.08322208272173752 )
result 4 : 0.3328814911392468 ( 0.24965901677257113 )
result 5 : 0.4161068624507617 ( 0.33288438808408605 )
result 10 : 0.832183555011673 ( 0.7489610806449972 )
result 20 : 1.664227484757454 ( 1.5810050103907785 )
result 40 : 3.3278497945218355 ( 3.2446273201551596 )
result 50 : 4.159353197179163 ( 4.076130722812487 )
result 100 : 8.314084653397305 ( 8.23086217903063 )
result 1000 : 82.397691161862 ( 82.31446868749532 )

随着分割数的增加,期望值与结果之间的差异也将增加。

但是,如果我将总和除以n(即取它们的平均值),则该误差是可以接受的(按1e-5的顺序)。

我一定在误解总和方差定律,但不确定我的误解在哪里。

1 个答案:

答案 0 :(得分:0)

我认为有不同的原因。 1.如果我们有一个小样本->计算方差可能是错误的(即不是某个分布的真实方差)。 2.可能有两个样本不是完全独立的。

解决这些问题的最佳方法是拥有两个非常大的样本。您可以运行以下代码,查看两个列表的方差接近于两个方差之和。当我们用较小的数字(例如10、100、1000)替换10000时,情况并非如此。