Поиск значений более (µ + 3 сигма) с помощью Boost :: аккумуляторов

вот моя проблема: у меня есть двумерная матрица двойников, содержащая данные. Данные гауссовские, и мне нужно выяснить, какие точки данных являются крайними. В качестве первой оценки, значения> (µ + 3 сигма) должны быть в порядке. Просто чтобы быть уверенным, правильно ли я поступил следующим образом:
Я могу добавить данные в аккумулятор, я могу рассчитать µ, но как я могу получить сигнатуру f **?

0

Решение

Вы можете получить среднее значение и момент от аккумулятора:

#include <iostream>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/mean.hpp>
#include <boost/accumulators/statistics/moment.hpp>
using namespace boost::accumulators;

int main()
{
// Define an accumulator set for calculating the mean and the
// 2nd moment ...
accumulator_set<double, stats<tag::mean, tag::moment<2> > > acc;

// push in some data ...
acc(1.2);
acc(2.3);
acc(3.4);
acc(4.5);

// Display the results ...
std::cout << "Mean:   " << mean(acc) << std::endl;
std::cout << "Moment: " << accumulators::moment<2>(acc) << std::endl;

return 0;
}

Однако в документах по поддержке мы читаем, что это грубый момент (не центральный):

Вычисляется N-й момент выборок, который определяется как сумма
N-й степени образцов по количеству образцов.

так что вам нужно настроить это и вот как это сделать (вам нужен sqrt второго центрального момента, mi_2).
http://en.wikipedia.org/wiki/Moment_(mathematics)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector