自动查找R中时间序列的季节性

时间:2013-10-22 22:19:28

标签: r time-series zoo

我不熟悉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)是否有一个方便的功能来计算彼此相邻的两天的差值以获得他们的每日销售额?因此负面意味着出售了如此多的Ipads和positve意味着补货。

(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包易于用于突发检测?谢谢

1 个答案:

答案 0 :(得分:3)

看看diff()的delta问题,它也是一种快速注意“爆发”的方法。

diff(z)
plot(diff(z))