I have a time series on consumer price index (CPI) and want to forecast inflation which is in my case the first difference of the log of CPI:
π_t=Log(P_t) - Log(P_t-1). This is the time series:
The ACF of the series decreases slowly as the lag increases (trend?) and a typical “scalloped” shape is also observable (seasonality?).
From my perspective there is no clear evidence for seasonality according to the seasonalityplot. However in the final ARIMA model when applying
auto.arima seasonality is taken into account.
Both the ADF test and KPSS test verify that this time series is nonstationary. Ndiffs() suggest to use d=1. the ADF test and KPSS test verify that the first diff series is stationary. The ACF and PACF plots are the following:
auto.arima function yields the following results:
Series: ts_cpi ARIMA(3,1,1)(0,0,2) Coefficients: ar1 ar2 ar3 ma1 sma1 sma2 0.1740 -0.0102 -0.1190 -0.8345 -0.0764 -0.1181 s.e. 0.0466 0.0415 0.0414 0.0306 0.0370 0.0352 sigma^2 estimated as 4.914e-06: log likelihood=3442.04 AIC=-6870.08 AICc=-6869.93 BIC=-6837.9 Training set error measures: ME RMSE MAE Training set 4.863658e-06 0.002206118 0.001545581
The Ljung-Box test indicates that the residuals are autocorrelated (24lags):
Ljung-Box test data: Residuals from ARIMA(3,1,1)(0,0,2) Q* = 38.23, df = 18, p-value = 0.003611 Model df: 6. Total lags used: 24
How can i proceed in order to have uncorrelated residuals and thus stable forecast estimations? Should i manually add more lags to the ARIMA model or make use of heteroskedastic robust errors?
auto.arimaon data that has not been differenced.
auto.arimawill take care of that. $\endgroup$