3
$\begingroup$

I am trying to implement recursive ARIMA that would just update the parameters with new data point, rather than re-estimate them from scratch, without taking into account the previous model. What I have in mind was proposed in:

A. K. Rao, Y. -. Huang and S. Dasgupta, "ARMA parameter estimation using a novel recursive estimation algorithm with selective updating," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 38, no. 3, pp. 447-457, March 1990, doi: 10.1109/29.106863

However, I have difficulties finding in the recent papers that anyone is using a similar approach and how is it performed. I would be grateful to hear from someone who might have tried something like that or some reference. With increase of the data by adding new data points, execution of reestimation on the whole set increases. That is the main reason why I would aim for parameters update, rather than reestimation.

$\endgroup$
2
  • 1
    $\begingroup$ You may think of the Bayesian approach also. $\endgroup$ Commented Jun 6, 2020 at 4:13
  • 1
    $\begingroup$ I think the state-space representation that is typically used for estimating ARIMA models has been designed specifically for that. $\endgroup$ Commented Jun 6, 2020 at 10:43

1 Answer 1

1
$\begingroup$

I have managed to implement this through Kalman filter, with the help from GitHub:

SARIMAX: incremental Kalman filter (question)

Basically, with initial parameters and covariance of the initial model:

        mod_test = ARIMA(X[t:t+1],order=best_cfg,exog=Xtemp[t:t+1])
        mod_test.ssm.initialize_known(model_fit.predicted_state[..., -1],
                                      model_fit.predicted_state_cov[..., -1])
        model_fit = mod_test.filter(params_training)
        params_training = model_fit.params

There is also extend function, however, I am not sure if it works the same. My results of forecast MSE for rolling window validation of 1300+ records show the negligible difference:

model_fit = model_fit.extend(X[t:t+1])
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.