9

我不太明白如何在in 中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)

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

  1. 这是否像我预期的那样根据纯粹的过去值进行预测?
  2. 为什么我必须指定 xreg 值两次?如果我排除它们,它就不会运行,所以它不像一个选项。
4

2 回答 2

15

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

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

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

其实文档里确实有具体讲xreg。抬头?forecast.Arima看看论点hxreg。你会看到 Ifxreg被使用, thenh被忽略。为什么?因为如果您的函数使用xreg,那么它需要它们进行预测。

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

于 2012-05-15T21:23:08.210 回答
0

相关 https://stats.stackexchange.com/questions/110589/arima-with-xreg-rebuilding-the-fitted-values-by-hand

我读到 R 中的 arima 很无聊 参见第 3 和第 4 期

https://www.stat.pitt.edu/stoffer/tsa4/Rissues.htm

建议使用 xreg 导出正确的截距。

我正在使用 excel 的真实统计数据来确定实际常数是多少。我有一个教授告诉我你需要有一个常数

这些得出相同的预测。因此,您似乎可以使用 xreg 获取一些描述性信息,但您必须使用 statsexchange 链接手动从中派生。

f = auto.arima(lacondos[,1])

f$coef

g = Arima(lacondos[,1],c(t(matrix(arimaorder(f)))),include.constant=FALSE,xreg=1:length(lacondos[,1]))

g$coef

于 2021-11-27T22:49:52.323 回答