繁体   English   中英

如何预测和拟合多个时间序列的最优 model?

[英]How to forecast and fit the optimal model for multiple time series?

我想在多个序列之间进行批量预测,例如,如果我想预测 ID 以 1(1,11,21,31...) 结尾的时间序列,我该怎么做?

由于您没有提供详细信息,因此我不确定您要使用哪种预测方法,因此我在这里给出了一个单变量时间序列 model 的示例:

加载所需的包:

library(forecast)
library(dplyr)

我们使用来自 Rob Hyndman 的示例数据:

dta <- read.csv("https://robjhyndman.com/data/ausretail.csv")

现在更改列名:

colnames(dta) <- c("date", paste0("tsname_", seq_len(ncol(dta[,-1]))))

以 1 结尾的 Select 时间序列:

dta_ends_with1 <- dplyr::select(dta, dplyr::ends_with("1"))

创建一个ts object:

dta_ends_with1 <- ts(dta_ends_with1, start = c(1982,5), frequency = 12)

指定要预测提前多少步,这里我设置为提前6步,

h <- 6

现在我们准备一个矩阵来保存预测:

fc <- matrix(NA, ncol = ncol(dta_ends_with1), nrow = h)

预测循环。

for (i in seq_len(ncol(dta_ends_with1))) {
  
fc[,i]  <- forecast::forecast(forecast::auto.arima(dta_ends_with1[,i]), 
                              h = h)$mean
  
}

设置列名:

colnames(fc) <- colnames(dta_ends_with1)

head(fc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM