判断时间序列的平坦度

机器算法验证 时间序列 变化点
2022-03-22 12:15:59

我有多个短(例如,长度 <100 点)时间序列,如下所示。所有系列均由以相同单位测量的值组成。我需要找到一些标准来判断它们的“平坦度”。最好,我想找到单个数值,以便我可以找到一些决策边界,让我区分“平坦”时间序列(第二个图)和“非平坦”时间序列(第一个图)。

“非平坦”时间序列是指具有相对较短的显着增加值的时间序列。我所说的“平坦”时间序列是指那些变化幅度一直非常相似的时间序列。该系列中可能存在或不存在某种轻微的线性趋势。

两个时间序列

你能提出一些建议吗?我尝试了多种方法,从简单的方法(使用方差)到更复杂的方法(使用变化点分析的方法),但没有令人满意的结果。

2个回答

我会考虑下面的协议,我称之为快速和肮脏的。代码来自 R。

a) 确定线性模型

mod<-lm(信号〜t)

看看是否有趋势的证据。查看系数是否具有满足的 p 值p0.025,或其他一些适当小的α/2.

b) 减去对您选择的重要的模型元素α/2.

c) 仅考虑从 b 部分获得的残差,确定是否存在非平凡自相关。

情节(acf(残差))

如果没有与滞后自相关的证据d>0,即,对于所有d,ACF<1.96/(Td),如@RichardHardy 所述这里T是样本中的点数,那么您可能会得出“平坦”或真的“无特征”的结论。

如果有证据表明滞后自相关d>0那么您可以暂时得出“不平坦”待分析其他模型的结论,您可以在这些模型中测试时间序列中的“颠簸”是否符合“格式良好”或“连贯”的标准。

结束又快又脏。

一个相关的问题是时间序列是否是平稳的。你没有问这个,但如果你问了,就会有更多话要说。无论如何,对于短时间序列,很难得出在任何有意义的长时间尺度上证明非平稳性的结论。

如此快速和肮脏可能是要走的路。

我可以想象一份报告总结了每个时间序列的统计显着模型结构。该报告将包含诸如遇到的阶跃/电平偏移的#of、正脉冲的#、负脉冲的#、确定性趋势的#、指示随机趋势的指针、误差方差中的断点#等信息。然后可以对该信息进行后处理,以区分“平坦度”的特征。我编写了一些这样的摘要报告,可以进行对比。这是我帮助开发的 AUTOBOX 的一个功能,将它们视为您可能实现的示例可能对您很有用。