繁体   English   中英

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

[英]Automatically find seasonality of time series in R

我是R中时间序列的新手,如果我有任何错误,请更正我。

我每天都有商店中产品库存的快照。 如果有帮助,您可以将其作为Bestbuy中IPad的数量,然后我去Bestbuy并计数他们仓库中的所有Ipad :)并记下笔记。

而且我可以监控他们每天售出的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)

在此处输入图片说明

(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)))

我知道,我需要修改期限以使其正常运行。 但是,季节性实际上取决于产品而有所不同,我不知道该如何处理。

(3)欢迎就我的想法发表一般评论。 例如,上面的图基本上显示出他们几乎每天都卖出1个便笺本。 然后,我需要以某种方式进行检测,几天之后,他们售出了10多种ipad,而我将以之为爆发。 通常,是否还有其他易于使用的R包用于突发检测? 谢谢

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

diff(z)
plot(diff(z))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM