比较多个时间序列最有意义的方法

时间:2009-12-29 07:03:50

标签: time-series data-manipulation

我需要编写一个程序,在不同日期范围(主要是2007-2009)和频率(每周,每月,每年......)的倍数时间序列上执行算术(+ - * /)。

我想出了:

  • 找到频率最高的系列。然后用零填充其他系列,使它们具有相同数量的元素。然后执行操作。

如何以最有意义的方式呈现数据?

尝试考虑所有可能性

3 个答案:

答案 0 :(得分:2)

如果零可以是此时间序列的有意义值(例如,以摄氏度为单位的温度),则用零填充所有间隙可能不是一个好主意(即,您将无法区分实数和存根值然后)。你可能希望interpolate你的时间序列。这个的基本数据结构可以是数组/双链表。

答案 1 :(得分:1)

您可以采取以下几种方法:

  • 使用最细粒度的时间序列数据(例如,秒)并在需要时插入/填充数据
  • 使用最粗粒度(例如,年)并在需要时汇总数据
  • 两个极端之间的任何中间步骤

您应该始终了解您的数据,因为:

  • 在插值的情况下,你必须选择最佳算法(线性或二次插值,样条,指数......)
  • 在总结的情况下,您必须选择适当的聚合函数(sum,maximum,mean ...)

一旦你拥有所有时间序列的相同时标,你就可以执行算术魔法,但要注意插值会产生额外的信息,而摘要会删除可用的信息。

答案 2 :(得分:1)

我已经相当广泛地研究了这个问题。插值方法的危险在于你偏向各种测量 - 特别是波动 - 并引入虚假相关。我发现傅立叶插值在一定程度上减轻了这种情况,但更好的方法是采用另一种方式:聚合更频繁的观察以匹配不太频繁的序列的周期性,然后比较这些。