这是我所做的:
accumulator_set<double, stats<tag::variance> > accumulator;
accumulator = for_each(x.begin(), x.end(), accumulator);
double sDeviation = sqrt(variance(accumulator));
但返回的标准差是总体标准差。我需要样本标准差(除以 n-1)。
Boost能做到吗?
这是我所做的:
accumulator_set<double, stats<tag::variance> > accumulator;
accumulator = for_each(x.begin(), x.end(), accumulator);
double sDeviation = sqrt(variance(accumulator));
但返回的标准差是总体标准差。我需要样本标准差(除以 n-1)。
Boost能做到吗?
在取平方根之前,只需将方差乘以 n/(n-1)。请参阅有关数学标准差的维基百科页面。请记住,虽然样本方差是无偏的,但如果您不知道所讨论的分布,则在取平方根后样本标准差总是会略有偏差。