如何找到图表何时达到峰值和平稳状态?


9

这听起来很基本,但是我有一个问题:我有一个窗口大小为300的数据队列。新数据在一端添加,旧值从另一端删除。

我希望队列数据或多或少保持一致,例如:10,12,15,10,20,然后开始急剧上升:15,10,20,22,25,26,28,30,32 ...一路上升到150左右。那里的数据可能会有所波动,然后以相似的斜率(120,118,116,115 ...)下降到20左右。

我正在尝试以编程方式确定该数据系列中的转折点,但是我的代码检测峰值的次数比我想的要多。如何确定图形何时上升,何时达到确定的转折点以及何时开始下降?我应该尝试看看变化率的变化率吗?


如果您对坡度和山峰的高度有一个合理的了解,那么您是否可以同时考虑高度,攀登多长时间以及当前坡度?您拥有多少峰的先前数据,并且您可以使用这些数据来拟合模型?
卡尔

2
无论采用哪种方法,您都必须正确定义什么是峰,什么是平稳峰。两个连续的“高”值是峰值还是平稳?五个呢?某些方法可能似乎不需要此信息,但是这些信息被隐藏在幕后。像往常一样,归结为正确定义问题,并为此优化参数(和/或算法)。
Nick Sabbe 2011年

Answers:


2

如果您知道这是期望的确切模式,则可以查找该确切模式,但是您将错过其他模式。所以。如果您知道峰值将是150,那么您可以寻找2或3或4或(连续多个)150。但是您说“或如此”-“或如此”有多大?峰值可能被定义为“超过130的3个连续值”,或者可能是“超过140的5个连续值中的3个”。那是你决定的。

另一方面,如果您只是在寻找一些检测峰的通用程序,那就好了。有很多平滑方法(例如,黄土,各种花键,移动平均线等)。这不是我擅长的领域,但是关于这方面有很多文献。


4

研究SiZer(大型ZERo交叉口...或斜坡,我不记得了),尽管可以说它更像是横截面而非时间序列工具。此处的想法是使数据在不同的带宽上平滑(变化大约三个数量级),并应用一些局部测试以查看局部回归的斜率是显着正的还是负的(或不确定的)。它产生了令人信服的图片,可以帮助您确定其中存在哪些功能。(我很惊讶,没有R实现,只有Matlab。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.