2013-03-09 3 views
5

Apache Commons Math를 사용하여 벡터의 SD를 계산합니다. 문제 : 나는 값을, 손Apache Commons와의 표준 편차 수학

DescriptiveStatistics stats = new DescriptiveStatistics(); 
stats.addValue(value1); 
... 
stats.addValue(value8); 
stats.getStandardDeviation(); 

일예 것보다 다른 값을 얻을 [1699.0, 1819.0, 1699.0, 1719.0, 1689.0, 1709.0, 1819.0, 1689.0]. SD는 52.067이지만 Commons Math = 55.662 여야합니다.

내가 뭘 잘못하고 있니?

답변

5

아파치는 당신에게 "표준 편차"를주고 있지만 "인구 표준 편차"

은 어쩌면 당신은 getPopulationVariance()를 사용하고 제곱근 자신을 걸릴 수 있습니다 찾는거야? DS 라이브러리에서이 기능이 표시되지 않습니다.

+0

예, 그게이다. 고맙습니다. – dotwin

6

Apache StandardDeviation 클래스는 "표준 편차"및 "채우기 표준 편차"두 값을 계산할 때 사용할 수 있습니다. 두 번째 값을 계산

StandardDeviation sd = new StandardDeviation(false); 

예에 초기화 :

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