2

我是 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) 是否有一个方便的函数来计算相邻两天的 delta 以首先获得他们的每日销售额?如此消极意味着卖了这么多 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 个 pad。然后我需要以某种方式检测,几天后他们卖出了超过 10 台 ipad,我将把它们当作一个爆发。一般来说,是否有其他易于使用的 R 包进行突发检测?谢谢

4

1 回答 1

3

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

diff(z)
plot(diff(z))
于 2013-10-22T22:48:01.053 回答