内置的matlab平稳性测试

时间:2014-02-24 21:22:53

标签: matlab

这似乎是一个必须使用的相当常见的测试,但我找不到matlab中的任何内置工具来帮助我找出给定的时间序列是否是静止的。到目前为止我发现的所有东西都在Econometrics工具包中,我没有。如果内置任何东西,有人可以推荐我自己写的最佳/最简单的稳定性测试吗? 谢谢, 保罗

编辑 我能够使用以下代码执行cumsum测试:

len = length(array);
arraySquared = array.*array
kVector = cumsum(arraySquared);
nSquared = sum(arraySquared);
DScore = max(abs(kVector./nSquared - kVector/len))`

但我仍然不确定如何解释这个统计数据。在文献中它只是说拒绝零假设,即当D统计量为“高”时系列是静止的,但是它没有给出我用来测量置信度的D的标准cdf,比如Z得分正常分布。在我的大部分时间序列中,我得到的值从3到18不等(这是基于S& P500数据的不稳定时期)。

1 个答案:

答案 0 :(得分:0)

时间序列的平稳性的经典统计检验以CUSUM的名义

http://en.wikipedia.org/wiki/CUSUM

(非常古老,但仍然是实际的材料)

一种相对较新但更难实现的技术被称为ICI(置信区间的交集),我在一年多前的学校里使用它。您可以通过此谷歌搜索找到相关论文:

https://www.google.it/search?q=ICI+rule&oq=ICI+rule&aqs=chrome..69i57j0l5.1754j0j4&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8#q=intersection+of+confidence+intervals&safe=off

最简单的算法在于获取您的时间序列片段(例如前100个样本),估计均值和方差,以便能够以已知置信度修复上限阈值和下限阈值。然后,如果它位于您的边界之间,您可以说时间序列是静止的。显然,这种技术引入了假阴性的概率(当变化的实体太小而位于边界之间时)

CUSUM基于对时间序列值进行“运行平均”的想法,但具有缩短检测延迟的额外优势(处理运行平均值和滑动窗口时的另一个已知问题)