【发布时间】:2013-05-27 06:35:33
【问题描述】:
我目前正在使用在线方差算法来计算给定序列的方差。这很好用,并且还提供了良好的数值稳定性和抗溢出性,但代价是一些速度,这很好。我的问题是,如果样本均值已知,是否存在比这更快的算法,同时具有相似的稳定性和抗溢出性(因此不像天真的方差计算)。
当前的在线方差计算是单遍算法,在主循环中包含除法和乘法(这是影响速度的因素)。来自维基百科:
def online_variance(data):
n = 0
mean = 0
M2 = 0
for x in data:
n = n + 1
delta = x - mean
mean = mean + delta/n
M2 = M2 + delta*(x - mean)
variance = M2/(n - 1)
return variance
【问题讨论】:
-
我们不能说一个算法比另一个更快,而不知道另一个......
标签: algorithm statistics variance