2009-12-29 27 views
4

我需要编写一个程序,对不同日期范围(主要是2007-2009)和频率(每周,每月,每年)的倍数时间序列执行算术(+ - * /)。 ..)。比较多个时间序列的最有意义的方法

我想出了:

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

如何以最有意义的方式显示数据?

冥思苦想的一切准备

+0

为什么你想让系列具有相同数量的元素? 你有什么目标来呈现数据? – 2009-12-29 07:09:15

+0

的目标是找到最有意义的方式来呈现图表上的数据。如果它有不均衡的时间尺度,这将不会有意义吗?我可能是错的 – Peter 2009-12-29 07:12:57

+0

也许举个简单的例子吧? – wallyk 2009-12-29 07:43:02

回答

2

如果为零可以成为这个时间序列有意义的值(如温度(摄氏度)),它可能不是一个好主意,以填补零的所有间隙(即你之后将无法区分真实值和存根值)。你可能想要interpolate你的时间系列。基本的数据结构可以是数组/双链表。

1

你可以采取几种方法:

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

你应该总是知道你的数据,因为:

  • 在插你要选择最好的算法的情况下(线性或二次插值,样条曲线,指数...)
  • 在总结你必须选择一个合适的聚集功能的情况下(总和,最大值,平均值...)

一旦您对所有时间序列具有相同的时间标度,您可以执行算术magick,但请注意插值会生成额外的信息,并且汇总将删除可用的信息。

1

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