[英]Reproduce ARIMA Forecast (Coefficients from R Arima())
我對R和ARIMA模型非常陌生,對在R中獲得的ARIMA模型有疑問。
我以美國的失業率為例,數據范圍為1948年1月至2015年2月,共806項觀測值。 看完AICc之后,我決定使用ARIMA(2,1,2)模型。 (順便說一句,我在R中的“ forecast”包中使用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's U之類的東西。但是我不知道該怎么做。 原因是似乎我不知道如何從此輸出中得出預測方程式以計算擬合值。
那么有人可以幫我嗎? 我應該如何從此輸出中得出預測方程式? 此外,獲得方程式后,如何在Excel中進行預測以從第一個數據點計算擬合值(當您計算t=1
的擬合值時,有些數字不可用)?
謝謝!
您可以使用summmary(fit.best)
查看RMSE。 或者,如果您想自己計算,則可以得出殘差和擬合值,如下所示:
fitted=log.unemp-fit.best$residuals
關於方程式,請參閱此
您可以使用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)
使用以下代碼的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中獲得的矢量點預測矢量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.