作者Anonymoux (猜猜偶素随 ? ^*^)
看板Statistics
标题[问题] 算标准差
时间Mon Nov 22 20:06:56 2010
最近在实作一个演算法
原理需要用到标准差的计算
因为资料 是随时间增加的
所以希望 标准差也能随时间变动来运算
现在问题来了
我目前求标准差的方式就是直接代公式:
SD = sqrt( sum( pow((xi - avg),2) ) for i = 1 to inf
其中 sqrt是取平方 sum 是总和 pow那块是平方 xi是样本 avg是平均
利用上述公式 求得标准差是没有问题的
但是资料越来越多 所需的运算量也越来越大
所以想请教一下 有没有办法
在每一笔资料加入时只需做少量运算(不必全部重算) 就能得到新的标准差
目前找到的方法 似乎都要新增两笔以上的资料
因为一笔资料没有定义标准差
如果没有好的办法~也欢迎大家来讨论讨论~谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.204.160.242
1F:→ yhliu:S^2_{n+1} = (n-1)S^2_n/n +(x_{n+1}-xbar_n)^2/(n+1) 11/22 22:26
2F:→ yhliu:xbar_{n+1}=(n*xbar_n+x_{n+1})/(n+1) 11/22 22:26
3F:→ yhliu:以上 xbar_n 表 n 个资料之平均数, s^2_n 表 n 个资料变异数 11/22 22:27
4F:→ yhliu:其中变异数(标准差的平方)是以 (资料数-1) 为分母. 11/22 22:28
5F:→ virginfish:如果不用相等权数,EWMA也许是个不错的方法。 11/29 10:11