我是R和ARIMA模型的新手,我对R中获得的ARIMA模型有疑问。
我将以美国失业率为例,数据范围是从1948年1月到2015年2月,共计806次观察。看完AICc之后,我决定使用ARIMA(2,1,2)模型。 (顺便说一句,我正在使用Arima()函数来预测"包装在R中)
输出如下:
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
的拟合值时,有一些数字不可用)? / p>
谢谢!
答案 0 :(得分:2)
您可以使用summmary(fit.best)
查看RMSE。
或者,如果您想自己进行加速,您可以得到残差和拟合值,如下所示:
fitted=log.unemp-fit.best$residuals
关于等式的见this
答案 1 :(得分: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)
答案 2 :(得分:0)
使用以下代码的Arima模型:
arimafit = arima(log.unemp, order=c(2,1,2))
使用以下代码进行预测:
arima_future = forecast(arimafit, h=3)
其中forecast
是预测未来任意几个月的功能。
h=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中获得的矢量点预测矢量。