如何用多元回归预测ARIMA?

如何用多元回归预测ARIMA?,r,time-series,forecasting,arima,R,Time Series,Forecasting,Arima,我的问题的完整R数据和代码如下: 我是R新手,在时间序列分析方面还是初学者,所以请原谅我的无知 我试图用2个虚拟编码回归器对一些入学数据进行建模和预测。我已经使用了auto.arima来适应模型: model您有两个问题。其中之一是R中的各种预测功能(有意地?)使您感到困难 第一个问题是,您需要为预测期定义回归系数的值。使用window()从x中提取相关数据: 产生 $pred Time Series: Start = c(2017, 3) End = c(2019, 1) Frequenc

我的问题的完整R数据和代码如下:

我是R新手,在时间序列分析方面还是初学者,所以请原谅我的无知

我试图用2个虚拟编码回归器对一些入学数据进行建模和预测。我已经使用了
auto.arima
来适应模型:


model您有两个问题。其中之一是R中的各种预测功能(有意地?)使您感到困难

第一个问题是,您需要为预测期定义回归系数的值。使用
window()
x
中提取相关数据:

产生

$pred
Time Series:
Start = c(2017, 3) 
End = c(2019, 1) 
Frequency = 5 
[1] 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451
[9] 52.00451

$se
Time Series:
Start = c(2017, 3) 
End = c(2017, 3) 
Frequency = 5 
[1] 17.13345
        Point Forecast     Lo 80     Hi 80      Lo 95     Hi 95
2017.40       39.91035 17.612358  62.20834   5.808514  74.01219
2017.60       59.51003 32.783451  86.23661  18.635254 100.38481
2017.80       69.81000 39.290834 100.32917  23.134962 116.48505
2018.00       57.49140 23.601444  91.38136   5.661183 109.32162
2018.20       55.45759 18.503034  92.41214  -1.059524 111.97470
2018.40       34.57866 -7.306747  76.46406 -29.479541  98.63686
2018.60       52.30199  6.702068  97.90192 -17.437074 122.04106
2018.80       61.61591 12.582055 110.64977 -13.374900 136.60672
2019.00       50.47661 -1.765945 102.71917 -29.421485 130.37471
您还可以使用
auto.arima()
。令人困惑的是,这次
forecast()
(仍然发送到
forecast.Arima()
)确实有效:

是的,你得到的预测是原来的五倍。第一列是预期预测,其他列给出预测间隔。这些由
level
参数到
forecast()

控制
forecast()
函数来自forecast包,并与来自该包的模型函数一起工作。这就是为什么可以使用
forecast(model\u par2,xreg=x\u fcst)
auto.arima()生成预测


arima()
函数来自stats包,因此不能保证它能与
forecast()
一起工作。要指定您自己的ARIMA模型,您可以使用
ARIMA()
函数,其行为与
ARIMA()
非常相似,但您可以使用
forecast(model\u par2,xreg=x\u fcst)
从中生成预测,并且,要继续处理整个时间序列(而不是部分时间序列),我必须预测回归器吗?我实际上知道未来的值(假设它是虚拟的,并且条件不会改变),所以我是否应该用所需的适当数量的数据加载新数据?您需要为您希望预测的时段指定回归值。我不完全确定你所说的“继续整个时间序列”是什么意思,你是指样本拟合吗?然后,您需要相应的采样期内的回归值。对于未来,您需要提供已知值,或者预测回归器本身。(其实是一样的)谢谢。这是有道理的。回到原来的问题,是否没有办法将
forecast
与自定义模型一起使用,而不是
auto.arima
?指定的模型为(1,1,1)(1,0,0)[5],用于注册(非部分注册)。我想对部分数据使用该模型。上述代码使用
predict
适用于这种情况,但是
predict
auto.arima
结果相比似乎不那么准确,后者更接近实际结果。然而,带有enroll_partial的auto.arima给出了一个不同的模型。我有点搞不清楚您到底在寻找什么。你指的是什么定制型号?你所说的“使用”模型是什么意思?在模型形式保持不变的情况下重新调整系数,还是只应用它而不重新调整新数据?也许考虑考虑一个新的问题,以一个明确的最小的工作例子,并准确地解释你正在寻找什么。我指的是从原始时间序列数据(1997-2019)中提取原始ARIMA模型的系数,并将其应用于截断数据(1997-2017),以测试模型预测的准确性。从Mitchell O'Hara-Wild的评论中,我现在明白了,我应该使用capital-A
Arima()
来指定自定义模型。谢谢!这很有效。我做了以下操作:
model\u partial
$pred
Time Series:
Start = c(2017, 3) 
End = c(2019, 1) 
Frequency = 5 
[1] 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451 52.00451
[9] 52.00451

$se
Time Series:
Start = c(2017, 3) 
End = c(2017, 3) 
Frequency = 5 
[1] 17.13345
model_par2 <- auto.arima(enroll_partial, xreg=x_par)
forecast(model_par2,xreg=x_fcst)
        Point Forecast     Lo 80     Hi 80      Lo 95     Hi 95
2017.40       39.91035 17.612358  62.20834   5.808514  74.01219
2017.60       59.51003 32.783451  86.23661  18.635254 100.38481
2017.80       69.81000 39.290834 100.32917  23.134962 116.48505
2018.00       57.49140 23.601444  91.38136   5.661183 109.32162
2018.20       55.45759 18.503034  92.41214  -1.059524 111.97470
2018.40       34.57866 -7.306747  76.46406 -29.479541  98.63686
2018.60       52.30199  6.702068  97.90192 -17.437074 122.04106
2018.80       61.61591 12.582055 110.64977 -13.374900 136.60672
2019.00       50.47661 -1.765945 102.71917 -29.421485 130.37471