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

具有重复项的时间序列R,用于每日预测,r,datetime,time-series,forecasting,timeserieschart,R,Datetime,Time Series,Forecasting,Timeserieschart,我想要一个关于如何在R中绘制每日数据和使用预测的指导 在这一数据中,周日和周六的购买量较低。而且有些工作日根本没有购物。因此,这是进行分析的障碍。 我有大约300行不同的项目名称,这些项目在列中重复,但日期不同。 例如,我每周三次买一块肥皂,分别在周一、周三和周日。 这是示例数据表: 到目前为止,我的问题是使用其他统计软件手动预测花费了我很长时间,所以我尝试从一开始就学习R,看看它如何节省时间。上表已被放入R中,date也已通过使用函数as.date(data$date) 通常我使用指数平滑法

我想要一个关于如何在R中绘制每日数据和使用预测的指导

在这一数据中,周日和周六的购买量较低。而且有些工作日根本没有购物。因此,这是进行分析的障碍。 我有大约300行不同的项目名称,这些项目在列中重复,但日期不同。 例如,我每周三次买一块肥皂,分别在周一、周三和周日。 这是示例数据表:

到目前为止,我的问题是使用其他统计软件手动预测花费了我很长时间,所以我尝试从一开始就学习R,看看它如何节省时间。上表已被放入R中,
date
也已通过使用函数
as.date(data$date)


通常我使用指数平滑法,因为购买量仍然很低,有时缺货,所以从历史数据中显示的模式不多。这个分析的结果是,我可以提供一个预测每天购买的项目,以便在我们要求一个项目时给予指导。

首先,请考虑为一个更实际的答案添加一个可重复的例子。请看标记为R的得票最多的问题,了解操作方法

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

data.agg <- aggregate(data$purchase, by = list(data$date, data$item), FUN = sum)
通常,您可以使用Holtwiners函数进行指数平滑,如下所示:

data.hw <- HotlWinters(data)
data.predict <- predict(data.hw, n.ahead = x) # for x = units of time ahead you would like to predict
HoltTwinter的可复制示例:

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))
库(AER)
数据(“非耐久性”)

这是很有帮助的,但是项目是重复的,我需要以独特的方式绘制它,没有重复的变量,这样它就只有1个项目与每日购买绘制@daniel Winkler只是想澄清一下:您想要每天的总购买量,而不管是哪种商品还是每种商品每天的总购买量?该商品对于分析来说也是至关重要的,因此我想通过
FUN=sum
by=list查看每种商品每天的购买量@danielThe
aggregate
函数(第1组,第2组)
应为您提供一个表,其中列出了每个日期a项的购买总额。请使用data.agg而不是data(如果您是这样命名的话)继续本示例的其余部分。请参阅如何在询问此类问题时提供可复制的示例。
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)
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))