问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用于时间序列中的变点检测算法

创作时间:
作者:
@小白创作中心

用于时间序列中的变点检测算法

引用
1
来源
1.
https://www.rongpm.com/column/changepoint-detection-1sws.html

变点检测(Change point detection, CPD)是时间序列分析中的一个重要技术,用于识别数据统计特性发生重大变化的点。这种技术在金融、医疗保健、环境监测等多个领域都有广泛应用。本文将介绍两种主要的变点检测方法:离线的ruptures模块和实时的changefinder模块,并通过生成两个时间序列来测试算法。

变点检测的概念与应用场景

变点检测(Change point detection, CPD)是指在时间序列中发现统计特性发生重大变化的点。变点可能由外部因素如数据生成方式、技术或消费者行为改变所引起,对于理解和量化数据的变化至关重要。CPD在金融、医疗保健、环境监测等多个领域有广泛应用,例如在ICU中用于及时监测病人的心率变化。

CPD算法可以是针对实时数据流或离线数据。离线CPD分析已经收集的数据集,适用于历史数据分析;而实时CPD在数据到达时立即进行分析,用于实时监控如金融市场和欺诈检测。实时CPD需要快速响应,而离线CPD可以利用完整的数据集。

两种CPD方法的对比分析

本文介绍了两种CPD方法:离线的ruptures模块和实时的changefinder模块,并通过生成两个时间序列来测试算法。一个时间序列具有恒定方差(ts1),另一个时间序列的方差随着时间变化(ts2)。

离线分析:ruptures模块

ruptures模块可以使用PELT算法来确定变点。PELT是通过最小化数据点到分段线的距离来确定变点。该算法能够在恒定方差时间序列中准确检测所有变点,但对于变化方差时间序列,PELT算法的效果较差,只能检测到部分变点。

实时CPD:changefinder模块

changefinder模块使用顺序贴现自回归学习算法(SDAR),通过生成异常得分和变点得分来检测变点。它适用于在线数据流,能够较为迅速地检测到变点,尽管在变化方差时间序列中有些变点可能因数据过于相似而被遗漏。

总结

总的来说,PELT算法适合离线数据分析且在恒定方差时间序列中表现良好,而changefinder模块适用于实时数据流中快速变点检测,虽然可能会错过一些变点。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号