2013-10-22 58 views
2

我是R中時間序列的新手,如果我犯了錯誤,請糾正我。在R中自動找到時間序列的季節性

我每天在商店中的產品庫存快照。 如果有幫助,您可以將其作爲Bestbuy中的iPad數量,然後我會去Bestbuy並統計他們倉庫中的所有Ipads :)並記下來。

我可以監控他們每天銷售的iPad數量以及他們何時補充庫存。我的目標是嘗試做一些時間序列分析。首先找出他們iPad的銷售趨勢和季節性,然後建立一個突發檢測模型,如果有一天銷售額太低或太高。我會收到通知。

一些假的數據:

library(zoo) 
index <- seq(as.Date('2013-01-01'), as.Date('2013-01-31'), by="day") 
data <- c(seq(5, 1), seq(15, 1), seq(10, 5), seq(10, 5)) 
z <- zoo(data, index) 
plot(z) 

enter image description here

(1)是否有一個方便的功能來計算兩天的增量彼此相鄰先得到他們的日常銷售?所以消極的手段銷售了這麼多的iPad,並且意味着補貨。

(2)當我試圖找到利用分解的趨勢,它告訴我:

> decompose(z) 
Error in decompose(z) : time series has no or less than 2 periods 

然後我意識到我需要確定季節性其中每週將是一個良好的開端。所以我可以做。

plot(decompose(ts(z[,1], frequency=7))) 

我知道不知何故,我需要modify the period使它工作。但季節性其實取決於產品,我不知道如何處理這個問題。

(3)有關我的想法的一般評論值得歡迎。例如,上面的圖表基本上顯示他們幾乎每天都出售1個墊子。然後,我需要以某種方式檢測,幾天後,他們銷售了超過10個以上的ipad,我將其作爲一個突破。 有沒有其他R包可以很容易地用於突發檢測?謝謝

+0

對於問題1)看看'diff()'。 – EDi

+0

你爲什麼試圖找到一種趨勢?你在預測嗎?我們正在傾向於數據建議,但我認爲最好先確定季節性時間段,而不是「數據監聽」,直到R允許您進行分解。事實上,它看起來並不像你的數據中有太多的季節性,但它可能只是窗口的小尺寸。 – Hugh

+0

@Hugh我實際上正在考慮的不是在產品層面上進行預測,而是在供應商層面上進行工作,比如說所有的蘋果產品,都會發現趨勢..抱歉,我沒有提到問題中的計劃。應該有一個每週的季節性,因爲人們在週末有更多的時間購買「Bestbuy」。庫存看起來並不明顯,但銷售額將會增加。 –

回答

3

看看diff()三角洲問題,它也是一個快速注意「突發」的方法。

diff(z) 
plot(diff(z)) 
+1

謝謝,那正是我想要的問題1。將滯後設置爲1並且可能繪圖(-diff(z)) –