重现ARIMA预测(来自R Arima的系数())

问题描述 投票:0回答:3

我是R和ARIMA模型的新手,我对我在R中获得的ARIMA模型有疑问。

我将以美国失业率为例,数据范围是从1948年1月到2015年2月,共计806次观察。看完AICc之后,我决定使用ARIMA(2,1,2)模型。 (顺便说一句,我在R)的“预测”包中使用Arima()函数

输出如下:

Series: log.unemp
ARIMA(2,1,2)

ar1 1.6406
ar2 -0.7499
ma1 -1.5943
ma2 0.7893

sigma^2 estimated as 0.001307: log likelihood=1530.14
AIC=‐3050.27 AICc=‐3050.2 BIC=‐3026.82

代码是

fit.best <- Arima(log.unemp, c(2, 1, 2), include.constant=FALSE)
print(fit.best)

然后我想测量这个模型的预测性能。也就是说,计算像RMSE,Theil的U等等。但我不知道该怎么做。原因是我似乎不知道如何从该输出推导出预测方程以计算拟合值。

所以有人可以帮我吗?我该如何从这个输出推导出预测方程?此外,在获得等式后,如何在Excel中进行预测以计算第一个数据点的拟合值(当您计算t=1的拟合值时,有一些数字不可用)?

谢谢!

r time-series forecasting
3个回答
2
投票

你可以使用summmary(fit.best)来查看RMSE。或者,如果您想自己计算,您可以导出残差和拟合值,如下所示:

fitted=log.unemp-fit.best$residuals

关于等式,请参阅this


0
投票

你可以使用forecast

fit.best <- Arima(log.unemp, c(2, 1, 2), include.constant=FALSE)
my_forecast <- forecast(fit.best, h=10) 

my_forecast  #will show the next 10 periods
# or use some detailed data like
plot(my_forecast$residuals)

0
投票
  1. 使用arima模型如下代码: arimafit = arima(log.unemp, order=c(2,1,2))
  2. 使用以下代码进行预测: arima_future = forecast(arimafit, h=3) 其中forecast是预测下一个你想要的月份的功能。 h=3意味着它将预测未来3个月。
  3. 如果要在测试数据上检查RMSE,可以使用DMwr包: metrics = as.data.frame(DMwR::regr.eval(<test_data_vector>, arima_future$point_forecast))

test_data_vector - 是您可以在将主数据集划分为训练和测试数据集时创建的测试数据向量。

arima_future$point_forecast - 您将在第2步中获得的矢量点预测向量。

© www.soinside.com 2019 - 2024. All rights reserved.