从Auto.arima到R中的预测

Mit*_*ops 9 r

我不太明白的是如何在语法forecast()中的适用外部回归量library(forecast)R.

我的合体看起来像这样:

fit <- auto.arima(Y,xreg=factors)

其中Y是一个timeSeries对象100×1和因素是timeSeries对象100×5.

当我去预测时,我申请......

forecast(fit, h=horizon)

我收到一个错误:

Error in forecast.Arima(fit, h = horizon) : No regressors provided

它是否要我从适合中添加xregressors?我以为这些都包含在fit对象中fit$xreg.这是否意味着它要求xregressors的未来值,或者我应该重复我在拟合集中使用的相同值?该文档未涵盖xreg预测步骤的含义.

我相信这一切都意味着我应该使用

forecast(fit, h=horizon,xreg=factors)

要么

forecast(fit, h=horizon,xreg=fit$xreg)

这给出了相同的结果.但我不确定预测步骤是将这些因素解释为未来的价值,还是作为以前的因素恰当地解释.所以,

  1. 正如我所料,这是根据纯粹过去的价值做出的预测吗?
  2. 为什么我必须两次指定xreg值?如果我将它们排除,它就不会运行,因此它不像选项那样运行.

nog*_*pes 15

如果我错了,请纠正我,但我想你可能不完全理解带有回归量的ARIMA模型是如何工作的.

当您使用简单的ARIMA模型(没有回归量)进行预测时,它只使用您时间序列的过去值来预测未来值.在这样的模型中,您可以简单地指定您的地平线,它会为您提供预测,直到该范围.

使用回归量来构建ARIMA模型时,需要包含要预测的回归量的未来值.例如,如果您使用温度作为回归量,并且您预测疾病发病率,那么您将需要未来的温度值来预测疾病发病率.

事实上,文档确实xreg具体谈到了.查看?forecast.Arima并查看参数hxreg.您将看到If xreg被使用,然后h被忽略.为什么?因为如果您的函数使用xreg,那么它需要它们进行预测.

因此,在您的代码中,h只是在您包含时被忽略xreg.由于您刚刚使用了用于拟合模型的值,因此它只是为您提供了同一组回归量的所有预测,就像将来一样.