R:预测()函数产生的预测多于陈述的预测范围“ h”。为什么?

时间:2019-03-29 02:17:48

标签: r forecasting forecast

我正在使用动态回归模型逐分钟预测时间序列。但是,预测期与指定的“ 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个值)。如何解决此错误?

1 个答案:

答案 0 :(得分:1)

请花一些时间阅读帮助文件。在这种情况下,它们提供了一个简单的解决方案。

  

h   :预测的周期数。如果使用xreg,则将忽略h,并将预测周期数设置为xreg的行数。

由于您使用了fourier()来生成xreg,并且没有在该函数中使用h参数,因此xreg的行数与训练数据一样多。 (再次尝试读取帮助文件。)