quantilesGK
quantilesGK
引入版本:v23.4
使用 Greenwald-Khanna 算法,对数值数据序列在多个不同分位点上同时计算分位数。
该函数与 quantileGK 的工作方式类似,但允许在一次遍历中计算多个分位水平,相比多次分别调用各个分位数函数更加高效。
Greenwald-Khanna 算法是一种用于在数据流上高效计算分位数的算法。 该算法由 Michael Greenwald 和 Sanjeev Khanna 于 2001 年提出。 该算法极其高效,仅使用 O(log n) 空间,并对每个元素只需 O(log log n) 时间(其中 n 为输入大小)。 它同样具有很高的精度,可以在可控精度下提供近似的分位数值。
语法
参数
accuracy— 分位数的精度。常量正整数。精度值越大,误差越小。例如,如果将accuracy参数设置为 100,则计算出的分位数在较高概率下其误差不会超过 1%。分位数精度与算法计算复杂度之间存在折衷关系。UInt*level— 分位数的级别。一个或多个从 0 到 1 的常量浮点数。Float*
参数
返回值
按指定顺序返回这些级别对应的分位数组成的数组。Array(Float64) 或 Array(Date) 或 Array(DateTime)
示例
使用 GK 算法计算多个分位数
更高精度的分位数估计