首页 > 如何时间序列的曲线中发现异常点

如何时间序列的曲线中发现异常点

我有个X轴是时间(以小时为单位),Y轴是数据值,能画出一个大体圆滑的曲线(如下图),但是异常时,会出现一个特别明显的突出点或凹进去的点(数据相对而言变化特别大),请问有什么算法可以识别出这些异常的点吗?

正常时:
异常时:

请问那个凹下去的点怎么用算法发现?


没有看到具体的时间序列的最小值和最大值。

  1. 如果每天最小值、最大值变化不大,可以考虑使用周期函数$$ts = csin(frac{24}{2pi}t + a )+ b = beta_1 sin(frac{24}{2pi}t) +beta_2 cos(frac{24}{2pi}t) + beta_0$$来做回归分析,然后通过区间估计,估计出每一时刻的值。设置一个可以接受的阈值,比如90%,如果实际点落在90%估计的区间外,可以考虑这个点为异常值。

  2. 如果出现的异常值往往只有一个点,直接用$$|ts_{t_2} - ts_{t_1}|$$不就好了,如果这个值很大,就可以考虑这个点异常了。

【热门文章】
【热门文章】