I am trying to generate stable multivariate time series (MTS) using a VAR model. Here I don't try to fit a VAR model on existing data, but to create the data from a VAR process by manually setting the parameters needed.
Here it's important that my MTS is stable -> it's amplitude doesn't grow exponentially.
for creating a VAR process there is multiple parameters to consider: $y_t=A_1 y_{t-1} + \dots + A_p y_{t-p}+ u_t$
with:
$y_t=(y_{1;t},...,y_{K;t})$ a vector of $K$ values which is a realisation of our MTS at one instant.
$A_i \forall i \in[1,p]$ the coefficient matrices of size $K\times K$ for lag $p$.
$p$ is the number of lag in the VAR process, i.e. the number of time steps in the past needed to fully describe the present time step.
$u(t)$ the noise of dimension $K$
This can be rewritten: $$Z_t=\Gamma_1 Z_{t-1} + \Upsilon_t$$
detailed as such:
$$\begin{bmatrix} y_{t}\\ y_{t-1}\\ y_{t-2}\\ \vdots\\ y_{t-p+1} \end{bmatrix} = \begin{bmatrix} A_1 & A_2 & \dots & A_{p-1} & A_p\\ I & 0 & \dots & 0 & 0 \\ 0 & I & \dots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \dots & I & 0 \end{bmatrix} \times \begin{bmatrix} y_{t-1}\\ y_{t-2}\\ y_{t-3}\\ \vdots\\ y_{t-p} \end{bmatrix} + \begin{bmatrix} u_t\\ 0\\ 0\\ \vdots\\ 0 \end{bmatrix}$$
we prefer this notation because with it, it's easy to define the stability condition of our time series which is: $$\forall v \in eigen\_values(\Gamma_1) : abs(v)<1$$
So we want our coefficient matrix $\Gamma_1$ (also called companion matrix) to have eigen values whose absolute value is less than $1$.
What I would like is a way of generalizing the creation of random weights matrices depending on the number of lags $p$ and the number of series $K$. Though it needs to be a matrix that will yield a stable process, hence the formulation above.
So my idea was to randomly generate an eigenvalues vector $\lambda = [\lambda_1, \lambda_2, \dots, \lambda_{p*K}]$ with absolute values of its elements < 1, and from this generating a matrix of the correct form $\Gamma_1$. So for this we need a matrix of the eigen vectors $V = [v_1, v_2, \dots, v_{p*K}]$ associated with $\lambda$. Such that: $\Gamma = V^{-1}D_\lambda V$
with $$ D_\lambda = \begin{bmatrix} \lambda_1 & 0 & \dots & 0\\ 0& \lambda_2 & \dots & 0\\ \vdots& \vdots & \ddots & \vdots\\ 0& 0 & \dots & \lambda_{p+K} \end{bmatrix} $$
is of the form of $\Gamma_1$.
So the heart of my question is: What are the constraints on my eigen vectors $V$ so that my matrix $\Gamma_1$ will have the correct shape ?