2013-03-15 54 views
2

這裏是我做過什麼:如何使用boost庫獲取SAMPLE標準偏差?

accumulator_set<double, stats<tag::variance> > accumulator; 
accumulator = for_each(x.begin(), x.end(), accumulator); 
double sDeviation = sqrt(variance(accumulator)); 

但返回的標準偏差是總體標準差。我需要樣本標準差(由n-1除)。

可能促進做到這一點?

回答

3

在取平方根之前,只需乘以n /(n-1)的方差。有關數學的標準偏差,請參閱wikipedia page。請記住,雖然樣本方差是無偏的,但如果您不知道問題的分佈情況,則在取平方根後,樣本標準偏差總會略有偏差。

+0

我測試這種方法(乘以N/N-1),並發現它確實產生預期的結果。 – Boinst 2016-04-15 01:54:27