时间序列R具有重复项目,用于每日预测

时间:2016-09-24 10:12:27

标签: r datetime time-series forecasting timeserieschart

我想了解如何在R中绘制每日数据和使用预测的指导。

此数据中周日和周六购买量较低。并且某些工作日根本没有购买。所以它是分析的障碍。 我有大约300行具有各种项目名称,这些项目在列中重复,但具有不同的日期。 例如,我在星期一,星期三和星期天每周买3次肥皂。 这是示例数据表:

Example Data

到目前为止我的麻烦是我花了很长时间用其他统计软件手动预测,所以我尝试从一开始就学习R,看看它如何节省时间。上表已放入R,date也已使用函数factor

date转换为as.Date(data$Date)

通常我使用指数平滑方法,因为购买仍然很低并且有时缺货,因此从历史数据中显示的模式不多。此分析的结果是我可以每天为购买物品提供预测,以便在我们何时需要物品时提供指示。

1 个答案:

答案 0 :(得分:1)

首先,请考虑添加一个可重复的示例,以获得更实质性的答案。查看标签为R的最热门问题,了解操作方法。

编辑:在创建ts之前,我认为这就是你想要的:

data.agg <- aggregate(data$purchase, by = list(data$date, data$item), FUN = sum)

如果您的数据还没有上课,那就是&#39; ts&#39;您可以使用ts()命令创建时间序列对象。来自?ts页面:

   ts(data = NA, start = 1, end = numeric(), frequency = 1,
   deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
as.ts(x, ...)

通常你可以使用HoltWinters函数进行指数平滑,如下所示:

data.hw <- HotlWinters(data)
data.predict <- predict(data.hw, n.ahead = x) # for x = units of time ahead you would like to predict

有关该功能的更多信息,请参阅?HoltWinters

聚合的可重复示例:

data <- data.frame(date = c(1, 2, 1, 2, 1, 1), item = c('b','b','a','a', 'a', 'a'), purchase = c(5,15, 23, 7, 12, 11))

data.agg <- aggregate(data$purchase, by = list(data$date, data$item), FUN = sum)

HoltWinters的可重复示例:

library(AER)
data("UKNonDurables")

nd <- window((log(UKNonDurables)), end = c(1970, 4))
tsp(nd)
hw <- HoltWinters(nd)
pred <- predict(hw, n.ahead = 35)
pred

plot(hw, pred, ylim = range(log(UKNonDurables)))
lines(log(UKNonDurables))