数据流标准差计算方法-不用事先计算均值

数据流标准差计算方法-不用事先计算均值

挑战

标准差(Standard Deviation)是误差有效值的估计,在信号处理里面代表偏差有效值。公式定义需要事先知道均值(引自百度百科):
数据流标准差计算方法-不用事先计算均值_第1张图片

数据流进来,你事先不知道均值,怎么办?

解决方案

运用数学手册的推论公式即可:
在这里插入图片描述

伪代码

准备
Sxx=0;
Sx=0;
n=0;
每次来一个数据x:
Sxx += x*x;
Sx += x;
n++;
Variation = (Sxx/n) - Power(Sx/n,2);
Sigma = Sqrt(Variation)

注意

有时候数据比较病态,计算舍入会导致Variation <0,需要写一个条件保护根号有效性。

其他

标准差的统计方法分母是n-1,教科书上说,是有限样本统计的偏差期望使然。当n比较大的时候我们就忽略这个差异了,不然程序变得奇怪了。

啰嗦一句

这是比较简单的统计概论内容,我在Bing搜了好几个关键字都找不到。这个公式在英语搜索网站一把就指向了StackExchange上正确的答案。特此写了这个备忘。

你可能感兴趣的:(均值算法,算法)