我不太了解forecast()
如何在library(forecast)
的R
中应用外部回归器的语法。
我的 body 看起来像这样:fit <- auto.arima(Y,xreg=factors)
其中Y
是timeSeries
对象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)。所以,
最佳答案
如果我错了,请纠正我,但是我想您可能不完全了解带有回归变量的ARIMA模型的工作原理。
当您使用简单的ARIMA模型(没有回归变量)进行预测时,它仅使用时间序列的过去值来预测 future 值。在这样的模型中,您只需指定您的地平线,它就会为您提供直到该地平线的预测。
使用回归器构建ARIMA模型时,需要包括要预测的回归器的 future 值。例如,如果您使用温度作为回归变量,并且您正在预测疾病的发病率,那么您将需要将来的温度值来预测疾病的发病率。
实际上,该文档确实专门讨论了xreg
。查找?forecast.Arima
并查看参数h
和xreg
。您将看到,如果使用xreg
,则h
将被忽略。为什么?因为如果您的函数使用xreg
,那么它需要它们进行预测。
因此,在您的代码中,当您包含h
时,xreg
只是被忽略了。由于您只是使用了用于拟合模型的值,因此,它为您提供了与将来相同的一组回归变量的所有预测。