我们平常在做业务监控时,监控阈值是怎么确认的呢?估计大多数都会说,拍脑袋定的。
厄,本着程序猿严谨的态度,我给大家讲一下通过箱线图找出阈值的一种通过概率统计方法。
箱线图是对数据分布的一种常用表示方法。在日常中经常见到,比如股票的涨跌图。最常见的箱线图如下所示,可以很直观的表示数据的波动情况,数据是否集中,每组数据处于什么位置等。当时也可以很直观的识别异常值。
首先,给大家讲下什么叫四分位数。顾名思义,就是把一堆数据排序会分成四份,找出其中的那三个点。中间那个叫中位数,下面那个叫下四分位数据,上面那个叫上四分位数。如下图:
中间的两个数是12和14,平均数13即为中位数。14以上的数字,最中间的数字是20即为上四分位数。12以下中间的数字是4即为下四分位数。
当然,也是更严谨的计算方法。对样本数据或者全部数据线性回归,找出概率密度函数。反函数y=0.5对应的x值为中位数,y=0.25对应的x值为下四分位数,y=0.75对应的x值为上四分位数。具体推导有些复杂,如果有兴趣下次再分享。
三西格玛准则是一种异常检测的统计方法。首先他假设统计数据是符合一元正态分布的,同理其中的数据误差都是随机误差。对统计数据计算标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除。如下图所示。
代入正态分布公式,1.5倍标准差的概率密度为86.64%,概率密度已经较高了。3倍标准差的概率密码为99.74。可以发现3倍标准差的密度已经非常高了,而在此之外的数据基本上可以判定为粗大误差了。3倍标准差也称为三西格玛准则。
根据以上计算出的四分位数以及三西格玛准则。约定1.5倍差值为中度异常,3倍差值为极度异常。具体计算公式如下:
中度异常上阈值为:S = Q3 1.5(Q3-Q1)
中度异常下阈值为:S = Q1-1.5(Q3-Q1)
极度异常上阈值为:S = Q3 3(Q3-Q1)
极度异常下阈值为:S = Q1-3(Q3-Q1)
通过箱线图识别异常值,虽说也参考了三西格玛准则的3倍定律,但更多是依赖于四分位数。在实际数据中,数据不一定严格服从正太分布,所以单单通过计算均值和标准差来判断异常值是不太准备的。而箱形图基于四分位数和四分位距来判断异常值,四分位数具有一定的稳定性,对异常值的识别也就变得比较客观了。
联系客服