apache-commons DescriptiveStatistics 给出了错误的 StandardDeviation?
apache-commons DescriptiveStatistics gives wrong 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
我错过了什么?
getVariance()
除以n-1
,这里来自docs:
Returns the (sample) variance of the available values.
This method returns the bias-corrected sample variance (using n - 1
in the denominator). Use getPopulationVariance()
for the non-bias-corrected population variance.
背景:通常,一个人有一个来自总体的样本,并且通过计算偏差校正(或无偏差)的样本方差,计算出的估计值的期望值等于总体方差。我为此 answer. And Wikipedia has background on population variance vs. sample variance.
编写了示例代码来演示这一点
我有这个代码:
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
我错过了什么?
getVariance()
除以n-1
,这里来自docs:
Returns the (sample) variance of the available values.
This method returns the bias-corrected sample variance (using
n - 1
in the denominator). UsegetPopulationVariance()
for the non-bias-corrected population variance.
背景:通常,一个人有一个来自总体的样本,并且通过计算偏差校正(或无偏差)的样本方差,计算出的估计值的期望值等于总体方差。我为此 answer. And Wikipedia has background on population variance vs. sample variance.
编写了示例代码来演示这一点