我正在使用从 2017-01-01 到 2017-10-27 的数据集,但是,auto.arima
说它只能处理单变量时间序列,尽管只有每日数据。
我错过了什么?
可重现的示例:
set.seed(25)
datelist<-seq(as.Date("2016-01-01"),as.Date("2017-10-27"),by="day")
salesvals<-round(abs(rnorm(length(datelist)))*1000,digits=2)
salestbl<-data.frame(datelist,salesvals)
salesTS<-ts(salestbl,
start=c(2016,as.numeric(format(salestbl$datelist, "%j"))),
frequency=7)
fit <- auto.arima(salesTS)
错误:
Error in auto.arima(salesTS) :
auto.arima can only handle univariate time series
总的来说,我知道每周都有季节性,因此是七天。我知道也有季度的季节性,但我可以下次解决这个问题。
总的来说,我试图使用 arima 预测来获得2017-12-31
的预测。
问题是您将data.frame
声明为错误的时间序列。任何你不需要这样做的方法,只需省略ts
部分,如下所示:
set.seed(25)
datelist<-seq(as.Date("2016-01-01"),as.Date("2017-10-27"),by="day")
salesvals<-round(abs(rnorm(length(datelist)))*1000,digits=2)
salestbl<-data.frame(datelist,salesvals)
fit <- auto.arima(salestbl[,2])
只需head(salesTS)
,您就会明白为什么会出现错误。