spectral_connectivity.simulate.simulate_MVAR#
- simulate_MVAR(coefficients: ndarray[tuple[int, ...], dtype[floating]], noise_covariance: ndarray[tuple[int, ...], dtype[floating]] | None = None, n_time_samples: int = 100, n_trials: int = 1, n_burnin_samples: int = 100, random_state: int | Generator | None = None) ndarray[tuple[int, ...], dtype[floating]][source]#
Simulate multivariate autoregressive (MVAR) process.
Generates time series data following the MVAR model: X(t) = sum(A_k * X(t-k)) + E(t), where A_k are coefficient matrices and E(t) is multivariate Gaussian noise.
- Parameters:
coefficients (NDArray[floating], shape (n_lags, n_signals, n_signals)) – MVAR coefficient matrices for each lag. Each A_k matrix defines the linear influence of signals at lag k.
noise_covariance (NDArray[floating], shape (n_signals, n_signals), optional) – Covariance matrix of the noise process. If None, uses identity matrix (independent unit-variance noise).
n_time_samples (int, default=100) – Number of time samples to generate (after burn-in).
n_trials (int, default=1) – Number of independent trials to simulate.
n_burnin_samples (int, default=100) – Number of initial samples to discard for equilibrium.
random_state (int, np.random.Generator, or None, optional) – Random number generator seed or instance for reproducible results.
- Returns:
time_series – Simulated time series data with specified MVAR dynamics.
- Return type:
NDArray[floating], shape (n_time_samples, n_trials, n_signals)
Examples
>>> import numpy as np >>> # Simple 2-signal VAR(1) with coupling >>> coefficients = np.array([[[0.5, 0.3], [0.2, 0.6]]]) >>> data = simulate_MVAR(coefficients, n_time_samples=1000, n_trials=5) >>> data.shape (1000, 5, 2)
Notes
The simulation uses a burn-in period to reach statistical equilibrium before collecting the requested samples.