Time series prediction for three constrained variables (x+y+z=1)

510 Views Asked by At

How can I PREDICT time-series for three non-negative variables that sum to 1? Say, x+y+z=1. I have historical data for x ,y, z , t. Based on historical data, I can create an ARIMA model for each variable individually, and make predictions for the future. How do I add the constraint ?

If this were only one variable, applying an ARIMA is simple.

For the single variable x(t), I can get a fit ARIMA_x(p, d, q) and those three numbers parametrize the model.

Here, I could get three sets of fits independently. But that is not proper.

With three variables that always sum to 1, how do I get three sets of constrained fit parameters?

https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average

https://www.statsmodels.org/stable/generated/statsmodels.tsa.arima_model.ARIMA.html

1

There are 1 best solutions below

10
On BEST ANSWER

tl;dr: Reduction of variables is a generic method to apply constraints. We show this below and it is easy because ARIMA is indifferent to affine linear transformations. However, at the end, we discover that we have just run ARIMA on two of the original variables and reconstructed the predictions of the third using the constraint.

Switch to a two variable system. (Three variables minus one linear constraint leaves two independent degrees of freedom.)

A smart way to do this is to pick the point $(1/3,1/3,1/3)$ as the origin and then pick two perpendicular unit vectors in that plane to be your new basis.

But I'm lazy and your ARIMA is indifferent to an affine linear transform, so the laziest thing to do is notice that points on your constraint is the plane through $(1,0,0)$, $(0,1,0)$, and $(0,0,1)$. So put the origin at $(1,0,0)$ and use $(-1,1,0)$ and $(-1,0,1)$ (the displacements from the first axis intercept to the second and third intercepts). Let our new parameters be $u$ and $v$, so we have to solve \begin{align*} \begin{pmatrix}x\\y\\z\end{pmatrix} - \begin{pmatrix}1\\0\\0\end{pmatrix} &= \begin{pmatrix}x-1\\y\\1-x-y\end{pmatrix} \\ &= u \begin{pmatrix}-1\\1\\0\end{pmatrix} + v \begin{pmatrix}-1\\0\\1\end{pmatrix} \end{align*} giving the system \begin{align*} 1 - x &= u + v \\ y &= u \\ 1 - x - y &= v \text{,} \end{align*} so we can read off $u$ and $v$ in terms of $x$ and $y$ in the second and third equations. (And going the other way from the first two: $x = 1 - u - v$ and $y = u$.)

Now run your ARIMA on $u$ and $v$. Then you can convert back to $x$ and $y$ and deduce $z = 1 - x - y$ to re-express results in the original variables.

But is all this necessary? No. Notice that we have $u = y$ and $v = z$. That is, we can ignore one variable and run the ARIMA on the other two, then reconstruct the third variable using the constraint.