找到90%的门票处理时间?

时间:2017-03-14 14:40:19

标签: python numpy statistics

我的老板想要我们的票务处理系统的指标,他想要的一个指标是" 90%的时间"他定义了90%的门票需要处理的时间。我猜他认为10%的异常可以被忽略。我希望这至少能达到某种统计效度。所以我得到了一个列入numpy数组的时间列表。这是我提出的代码。

import numpy as np

inliers = data[data<np.percentile(data, 90)]
ninety_time = inliers.max()

这有效吗?还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

百分位数是一种统计上完全有效的方法。它们用于提供强大的数据描述。例如,50%的百分位数是中位数,箱形图通常显示25%,50%和75%的百分位数,以便了解数据涵盖的范围。

90%的百分位数被视为对最大值的一种相当幼稚和粗略的估计,它比实际的最大值更不容易受到异常值的影响。 (显然,它有点偏颇 - 它总是小于真正的最大值。)谨慎使用这种解释。最安全的是将90%的百分位数看作是一个值 - 其中90%的数据低于10%,高于10%。

您的代码有点多余,因为percentile(data, 90)返回数据中90%的元素较低或相等的值。所以我想说这正是90%的时间,并且不需要计算<90%的值。对于大量样本和连续值,无论如何,<= 90%和<90%之间的差异将消失。