5.1.2. pywhy_graphs.simulate.simulate_data_from_var#

pywhy_graphs.simulate.simulate_data_from_var(var_arr: ndarray, n_times: int = 1000, n_realizations: int = 1, var_names: List[int | float | str | Any] | None = None, random_state: int | None = None)[source]#

Simulate data from an already set VAR process.

Parameters:
var_arrArrayLike of shape (n_variables, n_variables, max_lag + 1)

The stationary time-series vector-auto-regressive process. The 3rd dimension is the lag and we assume that there are lag points (t=0, ..., t=-max_lag).

n_timesint, optional

Number of observations (time points) to simulate, this includes the initial observations to start the autoregressive process. By default 1000.

n_realizationsint, optional

The number of independent realizations to generate the VAR process, by default 1.

var_nameslist of nodes, optional

The variable names. If passed in, then must have length equal n_variables. If passed in, then the output will be converted to a pandas DataFrame with var_names as the columns. By default, None.

random_stateint, optional

The random state, by default None.

Returns:
xArrayLike of shape (n_variables, n_times * n_realizations), or
pandas.DataFrame of shape (n_times * n_realizations, n_variables)

The simulated data. If node_names are passed in, then the output will be converted to a pandas DataFrame.

Notes

The simulated x array consists of multiple “instances” of the underlying stationary VAR process. For example, if n_times is 1000, and max_lag = 2, then technically you have 500 realizations of the time-series graph occurring over this multivariate time-series. However, each realization is dependent on the previous realizations in this case.

In order to start from a completely independent initial conditions, then one can modify the n_realizations parameter instead. To generate 500 independent realizations in the above example, one would set n_realizations = 500 and n_times=2.