首页 > 其他分享 >S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点

时间:2023-08-03 21:07:26浏览次数:47  
标签:STL 残差 检验 中位数 ESD MAD 异常

基于统计的异常检测方法S-H-ESD[twitter]

 

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_数据集

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_时间序列_02

前10离群点中第三个点检测为异常,则至少有3个异常点

S-ESD

考虑ESD有如下两个限制:一是对于具有季节性的时间序列异常不能很好的识别,下图1中很多周期性变化的点并非异常点;二是多峰分布的数据点,一些低峰异常数据点不能被识别出来,如图2。

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_数据集_03

图1 时间序列图

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_数据集_04

图2 数据分布图

因此介绍S-ESD(Seasonal-ESD),Algorithm 1 中主要的不同是对时间序列数据进行STL分解,剔除其中的季节项,中位数做为趋势项(STL Variant),对残差项进行ESD检验。STL variant不同于STL主要考虑图3的情形,(a)中的STL分解得到的残差项,其中红色阴影部分存在spurious anomalies(这些点在原时间序列中并非异常)。

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_时间序列_05

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_临界值_06

图3 STL和变形STL分解对比图

局部异常和全局异常可识别性)S-ESD通过分解之后对残差项进行ESD检验,不仅可检验全局异常点,而且可以检验出如图4的局部异常点,这些异常点在原始数据中介于季节项的最大值和最小值之间,直接对原始数据ESD检验则无法识别。

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_算法_07

图4 局部异常和全局异常对比

S-H-ESD

但是S-ESD也有局限性,就是对于数据中含有异常点数量较多时,很难识别较多的异常点。因此下面介绍Seasonal Hybrid ESD (S-H-ESD),首先介绍MAD。

MAD

考虑到ESD的检验统计量中的均值和方差对于过大的异常值较为敏感,于是选择利用MAD(Median Absolute Deviation)进行代替,如下

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_临界值_08

更一般的可以使用

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_临界值_09

或者

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_临界值_10


因此S-H-ESD相比S-ESD,是把ESD中的均值方差计算的统计量替换成MAD,图5比较了两种方法的效果,S-H-ESD对于异常点的识别率更高,同时由于计算中位数,时间复杂度也相对会更高。

S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点_数据集_11

图5 S-ESD和S-H-ESD对比

python实现

推荐pyculiarity,原文的github地址是R的实现[5]

参考

  1. ^Hochenbaum J, Vallis O S, Kejariwal A. Automatic anomaly detection in the cloud via statistical learning[J]. arXiv preprint arXiv:1704.07706, 2017.
  2. ^Francisco Augusto Alcaraz Garcia. Tests to identify outliers in data series. Pontifical Catholic University of Rio de Janeiro, Industrial Engineering Department, Rio de Janeiro, Brazil, 2012.
  3. ^Bernard Rosner. On the detection of many outliers. Technometrics, 17(2):221–227, 1975.
  4. ^https://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm
  5. ^https://github.com/twitter/AnomalyDetection

发布于 2020-10-13

标签:STL,残差,检验,中位数,ESD,MAD,异常
From: https://blog.51cto.com/u_11908275/6952839

相关文章

  • LightGBM为什么比xgbost好?——选择梯度大(残差大)样本来进行特征分裂生成的树,借鉴了Ad
    LightGBM(LightGradientBoostingMachine)是一款基于决策树算法的分布式梯度提升框架。为了满足工业界缩短模型计算时间的需求,LightGBM的设计思路主要是两点:减小数据对内存的使用,保证单个机器在不牺牲速度的情况下,尽可能地用上更多的数据;减小通信的代价,提升多机并行时的效率,实现在......
  • BFPRT 算法 (TOP-K 问题)——本质就是在利用分组中位数的中位数来找到较快排更合适的p
    下面为代码实现,其所求为前k小的数:#include<iostream>#include<algorithm>usingnamespacestd;intInsertSort(intarray[],intleft,intright);intGetPivotIndex(intarray[],intleft,intright);intPartition(intarray[],intleft,intright,intpivo......
  • LVDS端口ESD静电放电保护电路图(经典)
    LowVoltageDifferentialSignaling(LVDS)是一种低压差分信号技术接口,是美国NS公司为克服以TTL电平方式传输宽带高码率数据时功耗大、EMI电磁干扰大等缺点而研制的一种数字视频信号传输方式。LVDS端口电路包括两部分:驱动板侧的LVDS输出接口电路(LVDS发送器)和液晶面板侧的LVDS输入接口......
  • LinphoneSDK v 5.2.94 使用方法
    前提vs2022 wpfLinphoneSDK的获取途径有两种1 下载 linphonesdk.5.2.94.nupkghttps://gitlab.linphone.org/BC/public/linphone-sdk/-/packages/然后引用 这里是没有dll的,只是引用了LinphoneWrapper.cs2 下载zip包https://download.linphone.org/releases/windows/sd......
  • LC 4、寻找两个正序数组的中位数
    LC4、寻找两个正序数组的中位数题目描述这是LeetCode4、寻找两个正序数组的中位数,难度为困难给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的「中位数」。示例:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数......
  • python如何求中位数
    项目方案:求解列表的中位数项目背景在数据分析、统计学和机器学习等领域,求解列表的中位数是一个常见的问题。中位数是指将一个列表按照从小到大的顺序排列后,处于中间位置的数值。它可以作为数据的一个重要特征,用于描述数据的集中趋势和分布情况。项目目标本项目的目标是设计一......
  • [刷题笔记] Luogu P1168 中位数
    ProblemDescription题目描述非常简洁,不作解释。Solution题目要求对前奇数项求中位数?朴素的做法是暴力,但是范围1e5显然T。这里主要介绍一种堆顶堆的做法。堆顶堆是什么呢?我们不妨开两个堆,一个大根堆一个小根堆。动态维护中位数,初始令前1位的中位数为\(a_i\),遍历数组,若遇到比中......
  • is greater than this module's compileSdkVersion (android-32). Dependency: an
    实现"isgreaterthanthismodule'scompileSdkVersion(android-32)"的步骤为了解决这个问题,我们需要按照以下步骤进行操作:步骤操作1确认项目的compileSdkVersion2更新项目的compileSdkVersion3更新相关依赖库的版本下面是每一步具体需要做的操作:步骤1......
  • SD/TF卡ESD静电放电防护选用TVS瞬态抑制二极管,如何选型号?
    SD/TF卡是一种基于半导体快闪记忆器的新一代记忆设备,具有体积小、数据传输速度快、可热插拔等特性,广泛应用于便携式装置中,如数码相机、手机、平板电脑、多媒体播放器、汽车电子、无人机等产品中。然而,由于SD/TF卡需要经常性热插拔、集成度非常高,比较脆弱,很容易受到ESD静电放电的威......
  • newcoder61132L <multiset 维护中位数>
    题目中位数多次询问,每次修改数组中一个数,问修改后n个数的中位数思路使用multiset,分别维护数组的较大的\(n/2+1\)个和较小的\(n/2\)个;根据数据范围,或许可用线段树+二分...代码Code#include<iostream>#include<algorithm>#include<vector>#include<cstring>......