Forecasts of ARIMA models (exact implementation)
The Kalman filter provides in a readily way the forecasts of ARIMA models.
More especially, we represent in JD+ an ARIMA model by the following state vector ($s=\max \left( p-1,q \right)$):
\[\alpha_t= \begin{pmatrix} y_t \\ y_{t+1|t} \\ \vdots \\ y_{t+s|t} \end{pmatrix}\]where $y_{t+i|t}$ is the orthogonal projection of $y_{t+i}$ on the subspace generated by ${y\left(s\right):s \leq t}$.Thus, it is the forecast function with respect to the semi-infinite sample.
At the end of the filtering process, the state vector contains the first $s$ forecasts. The next forecasts ($k \gt s$) are computed recursively using the relationship:
\[\Delta(B) \Phi (B) \hat y_{n+k} = 0\]Implementation
The exact ARIMA forecasts are implemented in the class demetra.arima.internal.ExactArimaForecasts
.
The class uses the fast Chandrasekhar (CKMS) filter for better performances (which implies that the series should not contain missing values)