Solved – How to interpret the result of Forecast in R

arimaforecastingmachine learningrtime series

I am working on Daily time series forecasting starts from 1-1-2016 to 31-08-2018, For such long series I have used below approach to forecasting for next 30 days.

x<-msts(x1,start = c(2016,1,1),seasonal.periods = c(7,365))
fc<-auto.arima(x,D=1)
fit<-forecast(fc,h=30)
plot(fit)
summary(fit)

Where I am getting the desiered results as expected…

enter image description here

Forecast method: ARIMA(1,1,1)(0,1,0)[365]

Model Information:
Series: x 
ARIMA(1,1,1)(0,1,0)[365] 

Coefficients:
         ar1      ma1
      0.3771  -0.9760
s.e.  0.0411   0.0123

sigma^2 estimated as 164061:  log likelihood=-4516.73
AIC=9039.46   AICc=9039.5   BIC=9052.69

Error measures:
                   ME     RMSE      MAE       MPE     MAPE      MASE        ACF1
Training set 9.542325 319.4919 176.8696 -19.14952 39.12223 0.5240848 -0.01867405

Forecasts:
          Point Forecast      Lo 80     Hi 80       Lo 95    Hi 95
2018.6685       774.3854  255.29962 1293.4711  -19.487785 1568.259
2018.6712       957.2433  397.95021 1516.5364  101.878323 1812.608
2018.6740       950.2112  383.56386 1516.8586   83.598862 1816.824
2018.6767       871.5679  302.99223 1440.1435    2.006462 1741.129
2018.6795       765.9185  196.54592 1335.2911 -104.861727 1636.699
2018.6822       887.0847  317.21373 1456.9556   15.542277 1758.627
2018.6849      1395.4100  825.13533 1965.6847  523.250138 2267.570
2018.6877       966.2870  395.64171 1536.9323   93.560353 1839.014
2018.6904       880.2844  309.28081 1451.2879    7.009791 1753.559
2018.6932       794.0757  222.71863 1365.4329  -79.739560 1667.891
2018.6959       707.7894  136.08066 1279.4982 -166.563686 1582.143
2018.6986      1153.8072  581.74759 1725.8668  278.917525 2028.697
2018.7014      1021.8139  449.40391 1594.2238  146.388382 1897.239
2018.7041      1828.8164 1256.05638 2401.5764  952.855537 2704.777
2018.7068       884.8173  311.70752 1457.9272    8.321500 1761.313
2018.7096       888.1510  314.69163 1461.6105   11.120549 1765.182
2018.7123       891.4845  317.67573 1465.2933   13.919708 1769.049
2018.7151       894.8179  320.65996 1468.9758   16.719111 1772.917
2018.7178       694.8179  120.31104 1269.3248 -183.814526 1573.450
2018.7205       779.8179  204.96232 1354.6735  -99.347850 1658.984
2018.7233       816.8179  241.61381 1392.0220  -62.880856 1696.517
2018.7260       716.8179  141.26551 1292.3703 -163.413540 1597.049
2018.7288       812.8179  236.91741 1388.7184  -67.945903 1693.582
2018.7315       908.8179  332.56953 1485.0663   27.522055 1790.114
2018.7342      1004.8179  428.22186 1581.4140  122.990335 1886.646
2018.7370       792.8179  215.87439 1369.7615  -89.541065 1675.177
2018.7397       605.8179   28.52714 1183.1087 -277.072146 1488.708
2018.7425       842.8179  265.18009 1420.4558  -40.602907 1726.239
2018.7452      1004.8179  426.83325 1582.8026  120.866651 1888.769
2018.7479       303.8179 -274.51338  882.1492 -580.663474 1188.299

My Questions are as below

1.How to interpret 2018.6685 etc in forecast results

2.How to reduce errors(MAPE).

Best Answer

You're defining two seasonalities in your series:

x<-msts(x1,start = c(2016,1,1),seasonal.periods = c(7,365))

But you are using auto.arima, which can handle at most one seasonality.

Try TBATS, BSTS or FB Prophet, the models used in those packages can handle multiple seasonalities.

Related Question