如何检测显著变化/趋势在一个时间序列数据? [英] How to detect significant change / trend in a time series data?

查看:1613
本文介绍了如何检测显著变化/趋势在一个时间序列数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我有一个数组的说,25个样品,我会希望能够注意到无论是减小n,或从这些25个样品的时间间隔增加趋势(基本上是25个样品阵列是我的缓冲区被填充每说1毫秒)。

So I have an array of say 25 samples and I would want to be able to note the trends of whether it's decreasing n or increasing from those 25 sample time interval(basically 25 samples array is my buffer that is being filled by every say 1 ms).

请注意,这是我期待的,而不是单独的衍生金融(因为我会采用有限差分或其它数值微分技术获得)大势所趋。

Note that it is general trend that I am looking for, not the individual derivative(as I would have obtained using finite difference or other numerical differentiation techniques).

基本上,我希望我的数据是嘈杂所以即使做过滤等后可能会有起伏。但它的增加或减少,我要找的行为是大势所趋。

Basically I expect my data to be noisy so there might be ups and downs even after doing filtering and so on. But it's the general trend of increasing or decreasing behaviour that I am looking for.

我要集成在每毫秒增加/减少行为来触发一些事件,更多的是一个用户接口事件(LED闪烁),所以它不必处理非常延迟只要我能够检测一般的趋势。

I want to integrate the increasing/decreasing behaviour in every ms to trigger some event which is more of a user interface event (blinking a LED) so it does not have to very delay of processing as long as I can detect the general trend.

在此先感谢!

推荐答案

正如已经指出的那样已经,你不看的衍生物。你真的找一个显著改变的检测算法的时间序列。

As has been pointed out already, you're not looking for the derivative. You're really looking for a "significant change" detection algorithm for a time series.

您一定会希望有一个平滑滤波器(和移动平均滤波器是好的 - 看到比约恩的回答此部分)。

You'll certainly want a smoothing filter (and the moving average filter is fine -- see Bjorn's answer for this part).

但除了平滑滤波器,你还需要一个的决定标准或阈值选择以后,你将决定过滤的变化是否是显著。

But in addition to the smoothing filter, you will also need a decision criteria or threshold selector beyond which you will decide whether or not the filtered changes are significant.

如果您的时间序列的基本统计数据是稳定的(时间序列),那么你可以使用一个定的统计阈值,从平均值的标准差的意义。例如,您可以选择2个标准差,如果你想有一个相当强烈的报警阈值(认为只有在收益的最强5%报警)。

If the underlying statistics of your time series is stable (stationary time series), then you can use a fixed statistical threshold, in the sense of standard deviations from the mean. For example, you might choose 2 standard deviations if you want a fairly strong "alarm" threshold (think alarming only on the strongest 5% of returns).

如果有什么在暗示你的时间序列是稳定的,也就是说,如果一系列可能在这一个趋势,或基本过程产生的时间序列可以通过fundmantal变化,而你监视它的根本问题,那么你就需要使用动态或自适应阈值,在信号与噪声(亩/西格玛)的感觉。然后,您可以选择检测到的信号传送到噪声测试所有的有意义的元素。

If there is nothing in the underlying problem that suggests that your time series is stable, i.e. if series could have a trend in it, or the underlying process generating the time series can go through fundmantal changes while you're monitoring it, then you'll need to use a dynamic, or adaptive threshold, in the sense of signal-to-noise (mu/sigma). You might then choose to detect all "meaningful" elements that pass the signal to noise test.

这篇关于如何检测显著变化/趋势在一个时间序列数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆