如何确定一组值的标准偏差(stddev)?

如何确定一组值的标准偏差(stddev)?,第1张

如何确定一组值的标准偏差(stddev)?

虽然平方和算法在大多数情况下都可以正常工作,但是如果您要处理非常大的数字,可能会造成很大的麻烦。您基本上可能最终会得到负方差…

另外,永远不要永远将a ^ 2计算为pow(a,2),几乎可以肯定a * a更快。

到目前为止,计算标准差的最佳方法是韦尔福德方法。我的C非常生锈,但是看起来可能像这样:

public static double StandardDeviation(List<double> valueList){    double M = 0.0;    double S = 0.0;    int k = 1;    foreach (double value in valueList)     {        double tmpM = M;        M += (value - tmpM) / k;        S += (value - tmpM) * (value - M);        k++;    }    return Math.Sqrt(S / (k-2));}

如果您拥有 全部 人口(而不是 样本 人口),请使用

return Math.Sqrt(S / (k-1));

编辑: 我已经根据杰森的言论更新了代码…

编辑: 我还根据亚历克斯的言论更新了代码…



欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5499080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存