首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测时间序列数据中的重大变化/趋势?

如何检测时间序列数据中的重大变化/趋势?
EN

Stack Overflow用户
提问于 2012-10-12 10:00:39
回答 3查看 43.2K关注 0票数 27

所以我有一个由25个样本组成的数组,我希望能够注意到它是从这25个样本时间间隔开始减少n还是增加(基本上25个样本数组是我的缓冲区,每1 ms填充一次)。

请注意,这是我正在寻找的总趋势,而不是个人导数(正如我将使用有限差分或其他数值微分技术获得的那样)。

基本上,我希望我的数据是嘈杂的,所以即使在做了过滤等操作之后,也可能会有起伏。但我正在寻找的是行为增加或减少的总体趋势。

我想在每个ms中集成增加/减少的行为来触发一些事件,这更像是一个用户界面事件(闪烁LED),所以只要我能检测到总的趋势,它就不需要非常延迟的处理。

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2012-12-01 23:03:26

您肯定需要一个平滑过滤器(移动平均过滤器就可以了--有关这一部分,请参阅Bjorn's answer )。

但是,除了平滑过滤器之外,您还需要一个决策标准或阈值选择器,超过这一条件后,您将决定过滤后的更改是否显著。

如果时间序列的基础统计数据是稳定的(平稳时间序列),则可以使用固定统计阈值,即平均值的标准差。例如,如果你想要一个相当强的“警报”阈值,你可能会选择2个标准差(想一想,只在最强的5%的回报上发出警报)。

然后,您可以选择检测所有通过信噪比测试的“有意义的”元素。

票数 33
EN

Stack Overflow用户

发布于 2012-10-13 22:49:18

在我看来,你根本不想要导数。听起来你想要一个低通滤波器。低通滤波器只是简单地删除快速变化的数据,并在其位置上留下较长,较慢变化的趋势。最直观的低通滤波器是移动平均滤波器,其中取最后n个输入的平均值,其中n是根据噪声与您正在寻找的趋势的大小确定的。这被广泛用于从音频数据到图像处理再到失业数据(广泛引用了四周移动平均失业数据)。

如果你觉得有必要的话,可以使用递归技术开发更有效的/选择性更好的过滤器。您可以使用本教程创建低通滤波器。它是为音频编写的,但它可以在几乎任何数据上工作。它向您展示了如何编写钟形滤波器,但低通滤波器更简单。

http://blog.bjornroche.com/2012/08/basic-audio-eqs.html

票数 15
EN

Stack Overflow用户

发布于 2012-10-12 12:03:01

如果您知道信号统计信息,并将其用作n步超前预测器,则可以使用wiener filter。然后,您的趋势决策可以很容易地基于维纳滤波器的预测。如果信号不是广义平稳的,并且您认为预测不能线性完成(非线性/非平稳过程),那么您可以使用自适应维纳滤波器,如LMS滤波器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12851208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档