我正在使用动态回归模型逐分钟预测时间序列。但是,预测期与指定的“ h”值不匹配。但它们更适合训练数据集的长度。训练数据集为2周,而测试数据集为1周,每分钟的粒度。我在Forecast()函数中指定h = 60 * 24 * 7 = 10080分钟(1周),但是,预测长度为20160,即两周。
我检查了训练集的长度是否有任何相关性。显然有。如果我输入三周的训练数据集,它将产生三周的预测。
xreg <- fourier(msts_train_10, K= c(15,5))
fit4 <- auto.arima(msts_train_10, xreg=xreg, seasonal=FALSE, stationary=TRUE)
fc4 <- forecast(fit4, xreg = xreg, h = 10080)
accuracy(fc4,msts_total)
autoplot(fc4)
> length(fc4$mean)
[1] 20160
我预计仅会产生1周的预测(10080个值)。如何解决此错误?
答案 0 :(得分:1)
请花一些时间阅读帮助文件。在这种情况下,它们提供了一个简单的解决方案。
h :预测的周期数。如果使用xreg,则将忽略h,并将预测周期数设置为xreg的行数。
由于您使用了fourier()
来生成xreg
,并且没有在该函数中使用h
参数,因此xreg
的行数与训练数据一样多。 (再次尝试读取帮助文件。)