我的老板想要我们的票证处理系统的指标,他想要的指标之一是“90%的时间”,他将其定义为处理90%的票证所需的时间。我猜他是在考虑10%的异常可以忽略。我希望这至少能接近一些统计上的有效性。所以我有一个抛入numpy数组的次数列表。这是我想出来的代码。
import numpy as np
inliers = data[data<np.percentile(data, 90)]
ninety_time = inliers.max()这是有效的吗?有没有更好的方法?
发布于 2017-03-14 23:05:07
百分位数是一种统计上完全有效的方法。它们用于提供数据的健壮描述。例如,50%的百分位数是中位数,箱形图通常显示25%、50%和75%的百分位数,以提供数据覆盖的范围的概念。
90%的百分位数可以看作是对最大值的相当天真和粗略的估计,它比实际的最大值更不容易受到异常值的影响。(显然,它是有偏差的-它总是小于真正的最大值。)使用这种解释时要小心。看到90%的百分位数是最安全的-- 90%的数据在下面,10%在上面。
您的代码有些多余,因为percentile(data, 90)返回数据中90%的元素小于或等于的值。所以我会说这正是90%的时间,不需要计算小于90%的值。对于大量的样本和连续的值,<=90%和<90%之间的差异无论如何都会消失。
https://stackoverflow.com/questions/42788982
复制相似问题