[英]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.