apache-commons DescriptiveStatistics给出错误的StandardDeviation?

时间:2016-11-24 00:12:17

标签: java statistics apache-commons

我有这段代码:

    DescriptiveStatistics stats = new DescriptiveStatistics( new double[] {2,4,4,4,5,5,7,9} );
    System.out.println("var="+stats.getVariance());
    System.out.println("sd="+stats.getStandardDeviation());

我从维基百科https://en.wikipedia.org/wiki/Standard_deviation中取了示例。答案应该是var = 4.0,sd = 2.0,但我得到的是:

    4.571428571428571
    2.138089935299395

我错过了什么?

1 个答案:

答案 0 :(得分:0)

getVariance()除以n-1,来自docs

  

返回可用值的(样本)方差。

     

此方法返回偏差校正的样本方差(在分母中使用n - 1)。使用getPopulationVariance()进行非偏差校正的人口差异。

背景:通常,人群中有一个样本,通过计算偏差校正(或无偏)样本方差,计算出的估计值的预期值等于总体方差。我编写了示例代码,用于演示此answer。维基百科有population variance vs. sample variance的背景资料。