python 中的第 N 个百分位数与 Dynatrace 结果不同
Nth percentile in python is different from Dynatrace result
我正在尝试根据从 Dynatrace 中提取的数据创建报告。
我每天为事件提取数据,在我的 Python Django 报告中,我需要显示第 N 个百分位数据(例如 30 个百分位, 60th 百分位数, 75th 百分位数, 90th 百分位数).
当我尝试从 Dynatrace 中提取数据时,结果如下:
[1563,2731,3586,3966,4174,4971,6055,9175,15667]
对于此列表,当我使用 numpy.percentile 或 df.quantile 时,我得到一个类似于我在 Excel 中使用的公式的百分位值的值
然而,Dynatrace PERCENTILE 函数一起显示不同的值
例如,从 excel 和 Python,我得到第 75 个百分位数为 - 6055
从 Dynatrace 我得到 - 6835
我尝试使用一些在线工具来计算百分位数,但似乎都是 6055。
如果有人能解释一下 DynaTrace 是如何计算这个公式的,那将是一个很大的帮助
提前致谢
这种差异通常是由于 interpolation method,当样本非常小时非常明显。
但是,6055 在您的样本中恰好是第 75 个百分位数:
1563 2731 3586 3966 4174 4971 6055 9175 15667
0/8 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
因此,Numpy 使用其任何 interpolation methods(线性、较低、较高、最近、中点)产生相同的结果。
Dynatrace 可能正在使用更复杂的插值方法,例如 this one。其中一位作者隶属于 Dynatrace。
我正在尝试根据从 Dynatrace 中提取的数据创建报告。
我每天为事件提取数据,在我的 Python Django 报告中,我需要显示第 N 个百分位数据(例如 30 个百分位, 60th 百分位数, 75th 百分位数, 90th 百分位数).
当我尝试从 Dynatrace 中提取数据时,结果如下:
[1563,2731,3586,3966,4174,4971,6055,9175,15667]
对于此列表,当我使用 numpy.percentile 或 df.quantile 时,我得到一个类似于我在 Excel 中使用的公式的百分位值的值 然而,Dynatrace PERCENTILE 函数一起显示不同的值
例如,从 excel 和 Python,我得到第 75 个百分位数为 - 6055 从 Dynatrace 我得到 - 6835
我尝试使用一些在线工具来计算百分位数,但似乎都是 6055。 如果有人能解释一下 DynaTrace 是如何计算这个公式的,那将是一个很大的帮助
提前致谢
这种差异通常是由于 interpolation method,当样本非常小时非常明显。
但是,6055 在您的样本中恰好是第 75 个百分位数:
1563 2731 3586 3966 4174 4971 6055 9175 15667
0/8 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
因此,Numpy 使用其任何 interpolation methods(线性、较低、较高、最近、中点)产生相同的结果。
Dynatrace 可能正在使用更复杂的插值方法,例如 this one。其中一位作者隶属于 Dynatrace。