R 使用tbats预测每周数据

R 使用tbats预测每周数据,r,plot,time-series,data-mining,forecasting,R,Plot,Time Series,Data Mining,Forecasting,这是我的数据 数据从2016年7月26日开始,到2017年3月10日结束 因此,有两个问题: 这是正确的吗?使用TBAT?每周一次的季节性? 我也希望预测的数据看起来像初始数据,但如图所示,这不是我的情况,我该怎么做? 这是我得到的,这是代码 我执行了这个命令,最终使用tbts预测得到了这个结果 data.raw=read.csv(file=file.choose(),header=TRUE,sep=";",row.names=NULL)%>% mutate(dat

这是我的数据 数据从2016年7月26日开始,到2017年3月10日结束 因此,有两个问题: 这是正确的吗?使用TBAT?每周一次的季节性? 我也希望预测的数据看起来像初始数据,但如图所示,这不是我的情况,我该怎么做? 这是我得到的,这是代码

我执行了这个命令,最终使用tbts预测得到了这个结果

      data.raw=read.csv(file=file.choose(),header=TRUE,sep=";",row.names=NULL)%>%
      mutate(date.re = as.POSIXct(date, format = "%d/%m/%Y"))
      complete.dates <- range(data.raw$date.re)
      dates.seq <- seq(complete.dates[1], complete.dates[2], by = "week")
      series <- data.frame(sale.week = week(dates.seq),sale.month =    month(dates.seq), sale.year = year(dates.seq))

      data.post <- data.raw %>%
      mutate(sale.week = week(date.re),sale.month = month(date.re),  sale.year = year(date.re)) %>%
      select(Quantite, sale.week,sale.month, sale.year) %>%
      group_by(sale.week,sale.month, sale.year) %>%
       summarize_all(funs(sum(.))) %>%
      right_join(series) %>%
      replace_na(list(Quantite = 0))

      data2=data.post[,4]
      sensor <- ts(data2,frequency=52)
      fit <- tbats(sensor)
      fc <- forecast(fit)
      plot(fc)

提前感谢您

您的拟合正确,预测正确。但是,您没有正确指定季节性

要将其纳入每周的季节性,您很可能希望使用

sensor <- ts(data2,frequency=7)
为了更好地理解这一点,你可以通读它,但基本上,它可以归结为在同一天再次下降之前,你有多少次观察。因此,如果你每周有7天的数据,那么你的频率应该是7天。如果你每周只有5天的数据,你的频率应该是5天

TBAT的好处之一是可以有两个季节。您可以通过以下方式指定每周和每年的季节性:

library(forecast)
sensor <- msts(data2, seasonal.periods=c(7,365.25))
另一个选择是使用ARIMA。不过,您只能使用ARIMA的一个季节。您可能希望每周使用一次。使用ARIMA还将允许您包括一些指标,例如您希望看到异常大或小销售额的假期。如果你预计假期前几天的指标也会不同于正常趋势,那么你也可以使用这些指标

我每周都会做一些季节性调整,使用ARIMA最幸运,主要是因为可以包含其他协变量

<> P>其他可能要考虑的事情是检查异常值。您可以使用tsoutliers执行此操作,tsoutliers也在forecast包中。而且,有时您可以通过转换数据获得更好的结果。所以也要调查一下


要了解更多详细信息,您可能需要阅读一点时间序列

起来,伙计们,帮帮我