您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

如何确定一组值的标准偏差(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));

我已经根据杰森的言论更新了代码

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

其他 2022/1/1 18:22:12 有510人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶