关于计算平均值时的误差估计

在数据处理中最长碰到的一个问题是计算一组测量结果的平均值极其误差。根据误差传递公式,这个问题很容易解决。$$f_{\rm mean} =  \frac{1}{N} \sum_{i=1}^{N} f_i$$ $$\sigma = \frac{1}{N} \sqrt{\sum_{i=1}^{N} \sigma_i^2}$$

但是一个常见的问题是原始数据提供的误差可能是不准确的,我们可以根据数据本身的统计性质估计原始误差取值是否恰当。如果数据点的原始误差取值恰当,我们应该预期原始误差的平均值应该和所有数据点的标准差相当。我们经常碰到的情况是原始误差远小于数据点的标准差,原因是在估计数据误差的时候,往往只能考虑有限的几种误差来源。而另外一些误差考虑不到,或者很难估计大小,如天文观测时的宇宙线干扰,测量时突发意外事件等,这些额外的误差来源一般统一以系统误差的名目归之。另外也有一些情况,原始误差显著大于数据点的标准差,这种情况的一个常见原因是,在做误差估计时包含了几种误差来源,但是这些误差来源是有相关性的,并非彼此独立,计算误差时没有扣除相关性。

在没有额外线索的情况下,该怎么根据已知数据合理计算平均值的误差?一个常见的处理手段是在原始误差的基础上,补充一个系统误差,让加入系统误差后的新误差和标准差相当,并用新误差来进行误差传递,计算平均值的误差。具体的公式可以如下:

$$\rm std \equiv std(sample)$$

$$\sigma_{\rm typical} = {\rm mean}(\sigma_i)$$

$$\sigma_{\rm sys} = \sqrt{\rm std^2 –  \sigma_{typical}^2}$$

$$\sigma_{{\rm new},i} = \sqrt{\sigma_i^2 + \sigma_{\rm sys}^2}$$

更简单的做法是直接用标准差来作为误差的典型值,计算平均值对应的误差:

$$\sigma = \frac{1}{\sqrt{N}} * {\rm std}$$

还有一点需要注意的是,如果数据点非常多的话,统计误差会压到非常小的程度,但是这并不说明平均值和真值之间的误差真的有这么小。所有的数据点可能统一的朝一个方向偏离,测量结果和真值之间可能会存在额外的bias。至于怎么扣除bias,估计bias的误差大小就是更具体的问题了,不算在前边说的误差估计的范围内。

Visits: 178

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

*