我目前在 R 中使用 Twitter 的 AnomalyDetection:https ://github.com/twitter/AnomalyDetection 。该算法为具有季节性的数据提供时间序列异常检测。
问题:是否有其他类似的算法(控制季节性无关紧要)?
我正在尝试对我的数据尽可能多的时间序列算法进行评分,以便我可以选择最好的一个/集合。
我目前在 R 中使用 Twitter 的 AnomalyDetection:https ://github.com/twitter/AnomalyDetection 。该算法为具有季节性的数据提供时间序列异常检测。
问题:是否有其他类似的算法(控制季节性无关紧要)?
我正在尝试对我的数据尽可能多的时间序列算法进行评分,以便我可以选择最好的一个/集合。
Twitter算法基于
Rosner, B.,(1983 年 5 月),“广义 ESD 多异常值程序的百分比”,Technometrics,25(2),第 165-172 页
我敢肯定,自 1983 年以来已经有许多技术和进步!我对我的内部数据进行了测试,Twitter 的异常检测并没有识别出明显的异常值。我也会使用其他方法来测试时间序列中的异常值。我遇到的最好的是Tsay 的异常值检测程序,它在 SAS/SPSS/Autobox 和 SCA 软件中实现。所有这些都是商业系统。还有
tsoutliers包,它很棒,但需要arima
模型规范才能有效地工作。auto.arima
我在优化和模型选择方面遇到了默认问题。
Tsay 的文章是时间序列异常值检测方面的开创性工作。领先的预测研究期刊International Journal of Forecasting提到 Tsay 的文章是上面链接的一篇文章中被引用次数最多和最有影响力的论文之一(另见下文)。这项重要工作和其他异常值检测算法在预测软件(尤其是开源软件)中的传播是罕见的。
以下是截至 2017 年 R 中异常检测的选项。
anomalyDetection 包(不同于 Twitter 的)
编辑 2018
我遇到了一些可能对您有所帮助的来源,但它们不会像在您的数据上运行 R 脚本那样简单/方便:
Autobox(我的公司)提供异常值检测。与Autobox相比,Twitter 的算法得到了较大的异常值,但错过了较小的异常值。
运行需要很长时间,但结果更适合寻找较小的异常值以及季节性的变化,这些变化也是异常值。下面是使用 14,398 个原始观测值的前 8,560 个观测值发现 79 个异常值的模型。标准版本的最大值为 10,000 个观测值,但可以对其进行更多修改,但是当您想要识别和响应异常值时,没有真正的理由拥有这么多数据。
我们受到 Tsay 在异常值、水平变化和方差变化方面所做的工作以及 Chow 在参数变化方面的工作以及我们自己在检测季节性变化方面的工作的影响,
如果您下载 30 天试用版并加载 Twitter 示例数据并将频率指定为 60 并在安装文件夹中保存 3 个触发器文件(noparcon.afs、novarcon.afs、notrend.afs)并创建一个名为 stepupde 的文件。 afs 与 100。