我需要编写一个程序,对不同日期范围(主要是 2007-2009 年)和频率(每周、每月、每年......)的倍数时间序列执行算术运算(+-*/)。
我想出了:
- 找到频率最高的系列。然后用零填充其他系列,使它们具有相同数量的元素。然后执行操作。
如何以最有意义的方式呈现数据?
试图考虑所有的可能性
我需要编写一个程序,对不同日期范围(主要是 2007-2009 年)和频率(每周、每月、每年......)的倍数时间序列执行算术运算(+-*/)。
我想出了:
如何以最有意义的方式呈现数据?
试图考虑所有的可能性
如果零对于这个时间序列来说是一个有意义的值(例如摄氏温度),那么用零填充所有间隙可能不是一个好主意(即,之后您将无法区分真实值和存根值)。您可能想要插入您的时间序列。基本数据结构可以是数组/双链表。
我已经相当广泛地研究了这个问题。插值方法的危险在于您会偏向各种度量 - 特别是波动性 - 并引入虚假相关性。我发现傅里叶插值在一定程度上缓解了这种情况,但更好的方法是采用另一种方式:聚合更频繁的观察结果以匹配不太频繁的序列的周期性,然后比较它们。
您可以采取几种方法:
您应该始终了解您的数据,因为:
一旦您对所有时间序列拥有相同的时间尺度,您就可以执行算术魔术,但请注意插值会生成额外信息,而汇总会删除可用信息。