与Apache Commons Math的标准偏差

dot*_*win 6 java math apache-commons apache-commons-math

我正在使用Apache Commons Math计算向量的SD.问题:我得到的价值不同于手工

DescriptiveStatistics stats = new DescriptiveStatistics();
stats.addValue(value1);
...
stats.addValue(value8);
stats.getStandardDeviation();
Run Code Online (Sandbox Code Playgroud)

例如,取值[1699.0,1819.0,1699.0,1719.0,1689.0,1709.0,1819.0,1689.0].SD应为52.067,但Commons Math = 55.662.

我究竟做错了什么?

小智 9

Apache StandardDeviation类可用于计算两个值:"标准偏差"和"人口标准偏差".

对于计算第二个值,用它初始化它

    StandardDeviation sd = new StandardDeviation(false);
Run Code Online (Sandbox Code Playgroud)

例:

    double[] v = {1.0, 2.0, 3.0, 4.0, 5.0};
    StandardDeviation sd = new StandardDeviation(false);
    sd.evaluate(v);
    // returns 1.414

    StandardDeviation sd2 = new StandardDeviation();
    sd2.evaluate(v);
    // returns 1.581
Run Code Online (Sandbox Code Playgroud)


Bra*_*rad 6

Apache正在为您提供"标准偏差",但您正在寻找"人口标准偏差"

也许你可以使用getPopulationVariance()然后自己拿平方根?我没有在DS库中看到这个功能.