2009-12-29 29 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

我已經相當廣泛地研究了這個問題。插值方法的危險在於你偏好各種度量 - 尤其是波動性 - 並引入虛假關聯。我發現傅里葉插值在一定程度上減輕了這種情況,但更好的方法是以另一種方式:將更頻繁的觀測值聚合到不那麼頻繁的序列的週期性,然後比較這些。