如何检测时间序列中的峰值

Posted

技术标签:

【中文标题】如何检测时间序列中的峰值【英文标题】:How to detect peaks in timeseries 【发布时间】:2020-06-16 16:19:29 【问题描述】:

slow growing peak

我们如何使用pandas找到标记为黄色的索引周围的突然峰值,我已经看到了突然下降的答案,(How to detect a sudden change in a time series plot in Pandas) 但我无法以滚动窗口方式实现突然的峰值(图中的黄色点)和时间序列的缓慢增长趋势 如果再次出现缓慢增长的峰值,我们如何以滚动方式检测所有这样的点

【问题讨论】:

我会使用突然下降的答案,并在你的数据前面放一个减号 XD XD 谢谢,但我没有在数据前面得到减号? 好吧,如果你想在你的数组data_y中找到一个峰,那就和在-data_y中寻找一个下降一样:) 你能给我们一些日期吗? 你能定义一下,什么是你的突然高峰? 【参考方案1】:

您可以使用diff(),文档为hier

n = 0
m = 1
df.loc[df['velocity'].diff(m)>n]

n 表示值的增加,当n 为正时。 m 是句号。 对于用户定义的值更改,必须调整 nm 这两个值,因为当时数据不可用。

【讨论】:

不,这并没有给出突然变化的确切点,索引 160 周围的点是图表开始增加的点

以上是关于如何检测时间序列中的峰值的主要内容,如果未能解决你的问题,请参考以下文章

加速度计数据中的峰值检测

音频信号中的峰值检测

Java 分析 - 检测导致峰值的原因

如何使用 Python 绘制所有峰值

实时时间序列数据中的峰值信号检测Matlab R Golang Python Swift Groovy C ++ C ++ Rust Scala Kotlin Ruby Fortran Julia C

Objective-C 峰值检测加速框架