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,:)

Categories

Find more on Conditional Mean Models in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!