我想使用一次通过算法计算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
范围内的整数。
我可以在我的情况下使用这种方法而不关心数值稳定性吗?
答案 0 :(得分:0)
为了提高数值稳定性,您可以规范化数据。 请参阅:Wikipedia: normalization
例如:您的数据集为X_1, ..., X_n
,平均值为x_bar
,标准差为s
。然后按以下方式规范化数据:(X_i - x_bar) / s