2016-11-24 11 views
1

私はこのコードを持っている:apache-commons DescriptiveStatisticsが間違ったStandardDeviationを与えますか?

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 

私には何がありますか?

答えて

0

getVariance()はここdocsから、n-1によって分割:

利用可能な値の(サンプル)分散を返します

このメソッドはバイアス補正されたサンプル分散を返します(分母にn - 1を使用)。バイアス補正されていない母集団分散にはgetPopulationVariance()を使用します。

背景:典型的には、1つは集団からのサンプルを有し、バイアス補正された(またはバイアスされない)サンプル分散を計算することにより、計算された推定値の期待値は母集団分散と等しい。私はこれを示すサンプルコードを書いたanswer。そして、ウィキペディアは背景がpopulation variance vs. sample varianceです。

関連する問題