问题背景

在数据监控领域,数据质量决定了数据的可用性。然而频繁的数据质量问题源于多种诱因。

一般我们需要及时配置好监控,以便能在第一时间检测到异常,快速响应。
数据监控中,表中数据量的变化是关注的指标之一。
因此需要选择适合的阈值以准确监测数据量的波动。

绝对值还是百分比?

在监控数据量时,常见的做法是通过检测值与设定的阈值进行比较。以用户刷卡流水明细表为例,监控其每日数据量的波动可考虑以下方法:

  • 方法A:查看过去三个月的数据量,取最大值和最小值作为阈值,监控今日数据量是否在该范围内,超出范围则触发告警。
  • 方法B:以昨日的数据量为基准,计算今日数据量相对昨日的波动百分比。如果波动超过设定的20%阈值,则发出告警。

通过对比分析,方法A虽然简单易行,但由于允许较大幅度的波动,可能导致一些应触发的异常被忽略。而方法B则基于相对波动,能更有效地反映出数据量的变化,更容易发现潜在的异常。

当然,百分比监控也有不同的选择,如同比和环比。根据具体的业务场景,可以选择环比(相对于昨日数据量)或同比(相对于上一周期同日的数据量)来进行监控。

注意:以上例子适用于离线场景的每日数据量监控。若是实时数据监控,则可根据需求,选择更短时间内的数据进行比较,例如半小时或十分钟的数据对比。

题外话:正态分布

统计学中常用平均值和标准差来描述数据的波动情况。以海水为例,水位的平均高度可理解为“平均值”,而波浪的激烈程度则是“标准差”。尽管两片海域的平均水位相同,但波浪幅度不同,对渔船的影响却天差地别。

一组样本数据中,如果要判断其中一个数据是否异常,一般使用 |(此数据 - 平均值)| / 标准差 来进行评价,此值越大越有异常。

比如两次模拟考试全班的平均分都是60分,第一次考试全班的标准差是6分,第二次考试全班的标准差是12分。

如果你这两次也恰好都得了80分,按照这个公式可以说你第一次的成绩更好一点。

现实世界中中很多现象的数据测量均属于或者近似正态分布,比如考试成绩、人群体重或身高等。

对于符合正态分布的样本,按照公式会有99.7%的数据符合|(数据 - 平均值)| / 标准差 <= 3。

对公式做下变换,就是有99.7%的数据在[平均值 - 3标准差 , 平均值 + 3标准差]区间内。

不过,在实际生产环境中,验证数据分布和计算标准差往往较为繁琐。因此,采用简单的同比或环比监控方法也能满足大多数监控需求。

结论

在数据监控中,合理的阈值设定至关重要。虽然绝对值监控简单,但常常无法准确捕捉到数据的细微波动。

采用百分比监控方法能够更好地反映数据的变化。

参考

  1. 书籍《赤裸裸的统计学》[美] 查尔斯.惠伦(Charles Wheelan) P151-P196
  2. 书籍《极简统计学》[日] 小岛宽之 P39-P99
  3. 数据分析终极一问:指标波动多大才能算是异常?([https://m.163.com/dy/article/H1T3RAPM05319928.html]())

大数据咖啡屋
1 声望0 粉丝

数据领域开发一枚