R中的时间序列突破/变化/干扰检测:结构、变化点、突破检测、bfast等

Posted

技术标签:

【中文标题】R中的时间序列突破/变化/干扰检测:结构、变化点、突破检测、bfast等【英文标题】:Time Series Breakout/Change/Disturbance Detection in R: strucchange, changepoint, BreakoutDetection, bfast, and more 【发布时间】:2015-05-26 18:51:39 【问题描述】:

我希望它成为 R 中各种时间序列突破/变化/干扰检测方法的标志。我的问题是描述以下每个包的方法的动机和差异。也就是说,什么时候使用一种方法比另一种方法更有意义,相似点/差异等等。

有问题的包:

strucchange(例如here) changepoint(例如here) BreakoutDetection(链接包括简单示例) qcc's Control Charts(教程here) bfast 也许 (?) 在较小程度上:AnomalyDetection 和 mvOutlier

我希望有针对性的答案。也许每个方法都有一个段落。很容易在时间序列中对这些中的每一个进行打击,但这可能会以滥用/违反假设为代价。有一些资源可以为 ML 监督/非监督技术提供指导。我(当然还有其他人)会欣赏一些围绕时间序列分析领域的指南/指针。

【问题讨论】:

【参考方案1】:

两个截然不同的动机导致了时间序列分析:

    工业质量控制异常值检测,检测与稳定噪声的偏差。 对趋势的科学理解,其中对趋势及其决定因素的理解至关重要。

当然,两者在很大程度上都是同一枚硬币的两面,异常值的检测对于趋势分析之前的时间序列清理可能很重要。尽管如此,我仍将尝试使用这种区别作为红线来解释 R 提供的用于研究时间序列的包的多样性。

质量控制中,均值和标准差的稳定性非常重要,例如history of one of the first statistical efforts to maintain industrial quality, the control chart。在这方面,qcc 是most classical quality control diagrams: Shewhart quality control, cusum and EWMA charts 的参考实现。

旧的但仍然活跃的mvoutlier 和最近的AnomalyDetection 专注于异常值检测。 mvoutlier 主要使用马氏距离,可以使用 Filzmoser、Maronna 和 Werner (2007) 的算法处理二维数据集(栅格)甚至多维数据集。 AnomalyDetection 使用time series decomposition 来识别局部异常(异常值)和全局异常(季节性模式无法解释的变化)。 和BreakoutDetection

作为 AnomalyDetection,BreakoutDetection 已于 2014 年由 twitter 开源。BreakoutDetection,open-sourced in 2014 by Twitter,旨在检测 breakouts 它的时间序列,即异常组,使用非-参数统计。突破的检测非常接近趋势的检测和模式的理解。在类似的光学中,brca 包专注于分析不规则采样的时间序列,特别是识别behavioral changes in animal movement。

肯定会转向确定趋势变化changepoint 实现了多种(简单)常客和非参数方法来检测时间序列趋势中的单个或多个中断。 strucchange 允许使用回归模型拟合、绘制和测试趋势变化。最后,bfast 基于 strucchange 分析栅格(例如卫星图像)时间序列并处理缺失数据。

【讨论】:

以上是关于R中的时间序列突破/变化/干扰检测:结构、变化点、突破检测、bfast等的主要内容,如果未能解决你的问题,请参考以下文章

PCL OcTree——空间变化检测

图像边缘检测:Canny算子、Prewitt算子和sobel算子

R代码可检测多个患者随时间变化的变量

Angular 2:如何检测数组中的变化? (@input 属性)

角点检测概述

R异常数据检测及处理方法