我正在尝试在时间序列分析中找到极限。
例如:
这里有三个(平坦的)峰,并且界限很明确
| aaaaaaaaaaaaaaaa
| aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
| aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa
| aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa
|aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|---------------------------------------------------------------------------------
| + | + | + | + | + | + | + | + |
1 10 20 30 40 50 60 70 80
其中的限制是:
1-)5到20
2-)26至42
3-)54至75
但是有时会有一些噪音,例如以下示例:
| aa aa a aa
| aaa aaaaa aaa a a a aa aa a a a aaaa aa a a
| aaaa aaaaaaaaaaa aaaa aaaaaaaaa a aaaaaaaaa aaaaaaaaa aa
| aaaaaaaaaaaaaaaa a aaaaaaaaaaaaaaaa aa a a aaaaaaaaaaaaaaaaaaaaaa
|aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|---------------------------------------------------------------------------------
| + | + | + | + | + | + | + | + |
1 10 20 30 40 50 60 70 80
这里的界限没有很好地定义,但可能有3个或4个峰和相关区域。
为解决此问题,我尝试使用平滑的z分数(以查找峰)并尝试找到阈值以上的最长区域。
即使我能够在定义的滞后阶段(滑动窗口)中找到反演(峰值),也无法定义感兴趣的区域。
我想知道高斯混合模型(GMM)或otsu阈值是否足以处理此类数据。
此外,如果它们是未知的(我不知道组件的数量),我该如何定义区域的数量。
还有其他好的算法可以分离多峰分布吗?