Boost::accumulator 的百分位数给出了错误的值

Boost::accumulator's percentile giving wrong values

我正在使用 boost::accumulators::tag::extended_p_square_quantile 计算百分位数。在此,我还需要将概率提供给累加器,所以我这样做 m_acc = AccumulatorType(boost::accumulators::extended_p_square_probabilities = probs); 其中 probs 是包含概率的向量。

概率向量中的值为{0.5,0.3,0.9,0.7}

我向累加器提供了一些示例值。

但是当我尝试使用 boost::accumulators::quantile(m_acc, boost::accumulators::quantile_probability = probs[0]); 获取百分位数时,它 returns 不正确的值,有时甚至是 nan。

这里有什么问题?

我运行进入这个问题,浪费了很多时间来弄清楚这个问题,因此想回答这个问题。

向量有问题。应按其值的升序缩短向量。

将矢量值更改为此{0.3,0.5,0.7,0.9},它将按预期工作。

因此,如果有人使用 tag::extended_p_square_quantile 作为百分位数(支持多重概率),那么他需要按排序顺序给出概率(vector/array/list)。

tag::p_square_quantile不是这种情况,因为我们只能在其中给出一个值(概率)。