我不太明白forecast()
在library(forecast)
R
中如何应用外部回归量的语法。
我的健康状况如下:
fit <- auto.arima(Y,xreg=factors)
其中Y
是timeSeries
个对象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)
这给出了相同的结果。但我不确定预测步骤是将这些因素解释为未来的价值,还是作为以前的因素恰当地解释。所以,
答案 0 :(得分:13)
如果我错了,请纠正我,但我认为你可能不完全理解带有回归量的ARIMA模型是如何工作的。
当您使用简单的ARIMA模型(没有回归量)进行预测时,它只使用您的时间序列的过去值来预测未来值。在这样的模型中,您可以简单地指定您的视野,它会为您提供预测,直到该视野。
使用回归量构建ARIMA模型时,需要包含回归量的未来值进行预测。例如,如果您使用温度作为回归量,并且您预测疾病发病率,那么您将需要未来的温度值来预测疾病发病率。
事实上,文档 专门讨论xreg
。查找?forecast.Arima
并查看参数h
和xreg
。您会看到如果使用xreg
,则会忽略h
。为什么?因为如果您的函数使用xreg
,那么它需要进行预测。
因此,在您的代码中,当您包含h
时,xreg
被忽略了。由于您刚刚使用了用于拟合模型的值,因此它只为您提供了同一组回归量的所有预测,就好像它们将来一样。