从Auto.arima到R中的预测

时间:2012-05-15 18:00:51

标签: r

我不太明白forecast()library(forecast) R中如何应用外部回归量的语法。

我的健康状况如下:

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

其中YtimeSeries个对象100 x 1,因子是timeSeries个对象100 x 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值?如果我将它们排除在外,它就不会运行,所以它的行为不像选项。

1 个答案:

答案 0 :(得分:13)

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

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

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

事实上,文档 专门讨论xreg。查找?forecast.Arima并查看参数hxreg。您会看到如果使用xreg,则会忽略h。为什么?因为如果您的函数使用xreg,那么它需要进行预测。

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