Как получить стандартное отклонение SAMPLE с помощью библиотеки boost?

Вот что я сделал:

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

Но возвращаемое стандартное отклонение - это стандартное отклонение генеральной совокупности. Мне нужно стандартное отклонение выборки (деленное на n-1).

Может ли Boost это сделать?


person Gradient    schedule 15.03.2013    source источник


Ответы (1)


Прежде чем извлекать квадратный корень, просто умножьте дисперсию на n / (n-1). См. страницу википедии о стандартном отклонении для математики. Имейте в виду, что, хотя дисперсия выборки является несмещенной, если вы не знаете рассматриваемое распределение, стандартное отклонение выборки всегда немного смещено после извлечения квадратного корня.

person jcmcclurg    schedule 16.12.2013
comment
Я протестировал этот подход (умножить на n / n-1) и обнаружил, что он дает ожидаемые результаты. - person Boinst; 15.04.2016