2
我目前正在使用在线方差算法来计算给定序列的方差。这很好地工作,并且以一些速度为代价提供了良好的数值稳定性和溢流阻力,这很好。我的问题是,如果样本均值已知,同时具有类似的稳定性和抵抗性溢出(因此不像天真方差计算),算法是否存在比这更快。给定均值的方差计算
当前的在线差异计算是一个单循环算法,在主循环中有分割和乘法(这是影响速度的因素)。维基百科:
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
我们不能说算法比其他算法快,而不知道其他算法。 – Floris