我是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
的拟合值时,有一些数字不可用)?
谢谢!
你可以使用summmary(fit.best)
来查看RMSE。或者,如果您想自己计算,您可以导出残差和拟合值,如下所示:
fitted=log.unemp-fit.best$residuals
关于等式,请参阅this
你可以使用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)
arimafit = arima(log.unemp, order=c(2,1,2))
arima_future = forecast(arimafit, h=3)
其中forecast
是预测下一个你想要的月份的功能。
h=3
意味着它将预测未来3个月。DMwr
包:
metrics = as.data.frame(DMwR::regr.eval(<test_data_vector>, arima_future$point_forecast))
test_data_vector
- 是您可以在将主数据集划分为训练和测试数据集时创建的测试数据向量。
arima_future$point_forecast
- 您将在第2步中获得的矢量点预测向量。