Length of X vector in ARMAX/ARIMAX/SARIMAX model

5 views (last 30 days)
Hello everyone,
I want to create a time series model with exogenous inputs to predict future values of the measured time series. To do so I am using an ARIMAX model. Right now I have 8496 data points in my Y and my X vector. But when I want to estimate my model matlab tells me that my X vector must contain at least 8525 data points. So I got a few options now:
I can add a few more values at the end of my X vector (those values would be more recent then all the values that I used above). I can add a few more values at the beginning of my X vector (those values would represent pretty "old" data).
The results differ only slightly. But what is the right way??
Thanks a lot!

Accepted Answer

Roger Wohlwend
Roger Wohlwend on 10 Oct 2014
You have to add the values at the beginning. I assume you did not specify Y0 when using the estimate-function. That is why Matlab expects the X vector to be longer than the Y vector. Matlab needs the extra values to initialize the model. That would also mean that in your case P = 29. So add the data at the beginning. Alternatively you could specify Y0, then your vectors Y and X must be of the same length.
The fact that it does not make a big difference if you add the values at the beginning or at the end of X could mean that your X does not contribute significantly to the model. Check the T-values of the coefficient of the regression component to see if it is significant. If it is not estimate the model without X.

More Answers (1)

Esmail
Esmail on 6 Nov 2014
I've had the same problem yesterday. I think if you are going to 'estimate' a ARMAX(p,q) modell you have to add P old values at the beginning of your X. But if you are interested to 'simulate' a new values based on a already estimated model you have to add new X-values by numObs at the end of your X. I case of having lots of X parameters (as in my case) it would be more convenient to adapt the length of your Y values to the model. Meaning:
For estimate a ARIMAX(p,q): Y=Y(p:end,:) For a simulataion based on a ARIMA model by numObs: Y=Y(1:end-numObs,:)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!