SCAN:通过自适应非参数推断顺序检测变点
SCAN: Sequentially Detecting Change-points via Adaptive Nonparametric Inference
浏览论文内容
中文总结 AI 辅助
研究针对长序列依赖时间序列的变点检测问题,提出SCAN方法,通过多窗口集成等技术提升检测性能,在模拟和真实数据上表现优于竞争方法,对应软件包已开源。
中文摘要 AI 辅助
现代时间序列通常具有长度大、序列依赖和非平稳的特点。现有变点方法要么针对特定类型的变化,要么在对长序列使用非参数损失时计算复杂度高,许多方法还需要在序列依赖下仔细校准阈值。我们提出了SCAN,一种用于检测长的、序列依赖的单变量时间序列中多个分布变点的离线方法。SCAN使用积分概率度量比较相邻窗口,通过依赖感知的自助法校准局部差异,并使用缩放的1-瓦瑟斯坦准则细化候选位置,从而在统一框架内检测均值、方差和更广泛分布结构的变化。对多个窗口大小的集成降低了对窗口大小和阈值设置的敏感性。我们证明了在指数α混合依赖下,估计的变点数量和位置具有一致性,并且定位统计量在纯均值偏移下可简化为CUSUM型统计量。在包含多达100万个观测值的模拟中,SCAN在均值和联合均值-方差偏移下,总体上比竞争方法实现了更高的覆盖率和F1分数,尤其是在序列依赖的情况下。在真实数据上,SCAN识别出传感器数据中的标记活动转变和每小时比特币价格中可解释的结构变化。实现代码可在Python包scan-cpd和R包scanr中获取。
英文摘要
Modern time series are often long, serially dependent, and non-stationary. Existing change-point methods either target specific changes or become computationally intensive when using nonparametric costs on long series. Many also require thresholds to be carefully calibrated under serial dependence. We introduce SCAN, an offline method for detecting multiple distributional change-points in long, serially dependent univariate time series. SCAN compares adjacent windows using an integral probability metric, calibrates local discrepancies with a dependence-aware bootstrap, and refines candidate locations using a scaled 1-Wasserstein criterion, enabling detection of changes in mean, variance, and broader distributional structure within a unified framework. An ensemble over multiple window sizes reduces sensitivity to window size and threshold specification. We establish consistency of the estimated number and locations of change-points under exponential alpha-mixing dependence, and show that the localization statistic reduces to a CUSUM-type statistic under pure mean shifts. In simulations with up to one million observations, SCAN generally achieves higher covering and F1-scores than competing methods across mean and joint mean-variance shifts, particularly under serial dependence. On real data, SCAN identifies labeled activity transitions in sensor data and interpretable structural changes in hourly Bitcoin prices. Implementations are available in the Python package scan-cpd and R package scanr.