我不太了解forecast()如何在library(forecast)R中应用外部回归器的语法。

我的 body 看起来像这样:
fit <- auto.arima(Y,xreg=factors)
其中YtimeSeries对象100 x 1,factor是timeSeries对象100 x 5。

当我进行预测时,我会申请...
forecast(fit, h=horizon)
我得到一个错误:
Error in forecast.Arima(fit, h = horizon) : No regressors provided
是否要我从拟合中重新添加xregressors?我认为这些作为fit包含在fit$xreg对象中。这是否意味着它要求xregressors的 future 值,或者我应该重复拟合集中使用的相同值?该文档未涵盖预测步骤中xreg的含义。

我相信所有这些意味着我应该使用
forecast(fit, h=horizon,xreg=factors)
或者
forecast(fit, h=horizon,xreg=fit$xreg)
给出相同的结果。但是我不确定预测步骤是将这些因素解释为 future 值(value),还是适本地解释为先前的值(value)。所以,

  • 这是否像我期望的那样纯粹根据过去的值进行预测?
  • 为什么必须两次指定xreg值?如果我排除它们,它不会运行,因此它的行为不像一个选项。
  • 最佳答案

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

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

    使用回归器构建ARIMA模型时,需要包括要预测的回归器的 future 值。例如,如果您使用温度作为回归变量,并且您正在预测疾病的发病率,那么您将需要将来的温度值来预测疾病的发病率。

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

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

    10-07 13:48