在 Boost.Accumulator 中,您可以将样本添加到累加器中,然后从中提取统计量。例如:
acc(1.)
acc(2.)
acc(3.)
cout << mean; // 2
该库有许多更复杂的统计量,例如skewness
、kurtosis
或p_square_cumulative_distribution
.
我想做的是这样的:
acc(1.)
acc(2.)
acc(3.)
std::cout << mean(acc); // 2
acc.pop() // withdraw the first value (1.)
std::cout << mean(acc); // 2.5
pop()
将以 FIFO(先进先出)方式工作。我正在尝试做的是在滑动时间窗口内以在线(增量)方式计算我的数据的统计信息。
累加器必须在内部保留所有值。
我可以自己做,但我总是喜欢先检查现有库,并且可能有我不知道的算法可以在数据传入或传出时巧妙地计算数量。