I want to implement a hybrid ARIMA-ANN model but i dont know if the procedure i followed is the right one. Below i will describe you the steps i made.

  1. Fitting Arima model into my dataset and found the residuals from entire data.

  2. Create X_train, y_train from training set of residuals and X_val, y_val from testing set of residuals.

  3. Create Neural Network (with keras) and fit my data

  4. Sum my predictions from Arima model with the prediction from NN model

Is this the right way to implement the hybrid model or i should make same changes? The results by this model are worse than ARIMA, ANN models separately

References to this hybrid model can be found here: https://www.sciencedirect.com/science/article/pii/S0925231201007020

All help is appreciated.


I would split my data into a $train$, $val_1$ set, and $val_2$ set.

Fit the ARIMA model to $train$ + $val_1$ and the calculate your residuals, the train the NNet on the residuals from $train$ and test on the residuals from $val_1$.

Once you are satisfied with the Neural Net chosen, fit the hybrid ARIMA-ANN model on $train$ + $val_1$ and test on $val_2$.

Two comments:

  • The description of ARIMA in the paper (section 2.1) is a little bit dated and iffy - I would use the auto.arima function in R to get similar or better results than what they are describing.
  • This statement from the introduction of the paper: "the neural network model alone is not able to handle both linear and nonlinear patterns equally well." is strange. There's no reason why a suitable chosen NNet architecture can't handle both linear and non linear components together and I don't know where the author is getting it from.
  • 2
    $\begingroup$ The paper is outdated and it shows: today we don't use ARIMA + MLP architectures anymore to perform time series forecasting. Concerning the "linear + nonlinear" part, the author is clearly quite confused: what he probably wanted to say is that the MLP alone wouldn't have been able to predict trends, I.e., a response with a global (increasing or decreasing) trend, and this is true because he used a logistic activation function. However this is not the real reason why the MLP alone doesn't work on the time series data: even if one were to use an unbounded activation 1/ $\endgroup$ – DeltaIV May 3 '18 at 8:19
  • 1
    $\begingroup$ 2/ function such as a ReLU, the MLP would still underperform because it's an architecture which has been designed to handle iid data, not serially correlated data. $\endgroup$ – DeltaIV May 3 '18 at 8:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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