我想计算mean
、std
、skewness
、kurtosis
和covariance
使用一次通过算法。我发现的最简单和最快的一种方法由 Stuart McCrary from Berkeley Research Group 发布.例如对于 std
可以使用:
std = sqrt((sum(x^2)-N*mean(X)^2)/(N-1))
我读到这种方法不够好,因为它在数值上不稳定。不幸的是,我对数值稳定性没有深入的了解,但据我所知这是一些问题,这是由于浮点运算的精度有限而发生的。
在我的例子中,我将只处理 10^1-10^6
范围内的整数。
我可以在我的案例中使用这种方法而不关心数值稳定性吗?
最佳答案
要提高数值稳定性,您可以对数据进行归一化。 请参阅:Wikipedia: normalization
例如:您有一个数据集X_1, ..., X_n
,均值为x_bar
,标准差为s
。然后通过以下方式规范化数据:(X_i - x_bar)/s
关于algorithm - 一通通用统计。整数的数值稳定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477451/