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
不是这种情况,因为我们只能在其中给出一个值(概率)。
我正在使用 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
不是这种情况,因为我们只能在其中给出一个值(概率)。