2013-01-23 58 views
-4

我有以下時間序列數據。它有60個數據點顯示如下。請看下面這個數據的簡單圖。我用R來繪製這個。我認爲,如果我在圖中的點上繪製移動平均曲線,那麼我們可以更好地理解數據中的模式。我不知道如何在R中做到這一點。有人能幫我做到這一點。另外,我不確定這是否是識別模式的好方法。如果還有更好的方法,請告訴我。謝謝。在R中通過更好的可視化查找圖案

x <- c(18,21,18,14,8,14,10,14,14,12,12,14,10,10,12,6,10,8, 
     14,10,10,6,6,4,6,2,8,6,2,6,4,4,2,8,6,6,8,12,8,8,6,6,2,2,4, 
     4,4,8,14,8,6,6,2,6,6,4,4,8,6,6) 

graph

+0

關於「這是一種識別模式的好方法」(這對於StackOverflow來說有點偏離主題,但無論如何);我認爲滾動手段是完全可敬的,儘管更復雜的方法(例如我的答案中顯示的局部加權迴歸[黃土/黃土])確實存在。然而,它並沒有把我看作是一種複雜的模式在這裏被發現:數據似乎最初隨着時間而下降,然後平穩下來。滾動手段和更復雜的方法可能看起來更漂亮,但我認爲他們不會在這個數據集中找出任何更深層的模式...... –

+0

@Ben:謝謝你的想法。我同意你的看法,可能沒有多少模式。但是我總共有37個數據集。我看到滾動幫助我識別它們中的模式。 – samarasa

回答

6

要回答你的問題有關moving averages,你可以用rollmean的幫助是在包zoo完成它。

From Joshua's comment:您還可以查看TTR程序包,該程序包取決於xts,這取決於zoo。此外,包裝TTR中還有其他移動平均值:檢查?MA

require(TTR) 
# assuming your vector is loaded in dat 
# sliding window/moving average of size 5 
dat.k5 <- rollmean(dat, k=5) 
+2

'rollmean'在動物園裏。 TTR依賴於xts,這取決於動物園。 TTR確實有很多其他類型的移動平均線,參見'?MA'。 –

5

一種合理的可能性:

d <- data.frame(x=scan("tmp.dat")) 
qplot(x=seq(nrow(d)),x,data=d)+geom_smooth(method="loess") 

編輯:從評論回答感動,基於https://meta.stackexchange.com/questions/164783/why-was-a-seemingly-relevant-non-offensive-comment-removed

關於 「這是一個很好的方式來識別模式」(其對於StackOverflow來說有點偏離主題,但無論如何);我認爲滾動手段是完全可敬的,雖然更復雜的方法(例如這裏顯示的局部加權迴歸[黃土/黃土])確實存在。然而,它並沒有把我看作是一種複雜的模式在這裏被發現:數據似乎最初隨着時間而下降,然後平穩下來。滾動手段和更復雜的方法可能看起來更漂亮,但我認爲他們不會識別此數據集中的任何更深的模式...

如果您想一次爲多個數據集執行此類操作(如在您的評論中指出),您可能會喜歡ggplot的功能,用於自動生成同一圖表的多行或多面版本。

相關問題