R 中的时间序列 Breakout/Change/Disturbance 检测:strucchange、changepoint、BreakoutDetection、bfast 等

Time Series Breakout/Change/Disturbance Detection in R: strucchange, changepoint, BreakoutDetection, bfast, and more

我希望这成为 R 中各种时间序列 breakout/change/disturbance 检测方法的标志-post。我的问题是用以下每种方法描述方法的动机和差异包。也就是说,什么时候使用一种方法比另一种方法更有意义,similarities/differences,等等

有问题的包裹:

希望有针对性的解答。也许每种方法都有一段。很容易将这些中的每一个都打在一个时间序列上,但这可能是以 abusing/violating 假设为代价的。有资源为 ML supervised/unsupervised 技术提供指南。我(当然还有其他人)会欣赏围绕时间序列分析领域的一些 guidepost/pointers。

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

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

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

质量控制中,均值和标准差的稳定性非常重要,例如history of one of the first statistical efforts to maintain industrial quality, the control chart. In this respect, qcc is a reference implementation of the most classical quality control diagrams: Shewhart quality control, cusum and EWMA charts

旧的但仍然活跃的 mvoutlier and the more recent AnomalyDetection focus on outliers detection. mvoutlier mainly uses the Mahalanobis distance and can work with two dimensional datasets (rasters) and even multi-dimensional datasets using using the algorithm of Filzmoser, Maronna, and Werner (2007). AnomalyDetection uses the time series decomposition 用于识别局部异常(离群值)和全局异常(不能用季节性模式解释的变化)。 和 BreakoutDetection

作为AnomalyDetection,BreakoutDetection已于2014年由twitter开源。BreakoutDetection2014年由Twitter开源,旨在检测breakouts 它是时间序列,即异常组,使用非参数统计。突破的检测非常接近趋势的检测和模式的理解。在类似的光学中,brca 包侧重于分析不规则采样的时间序列,特别是识别 动物运动中的行为变化 .

明确转向确定趋势变化 changepoint implements multiple (simple) frequentist and non-parametric methods to detect single or multiple breaks in time series trends. strucchange allows to fit, plot and test trend changes using regression models. Finally, bfast建立在strucchange的基础上分析栅格(例如卫星图像)时间序列并处理缺失数据。