5.1.1. pywhy_graphs.simulate.simulate_linear_var_process#
- pywhy_graphs.simulate.simulate_linear_var_process(n_variables: int = 5, p_time_self: float = 0.5, p_time_vars: float = 0.5, p_contemporaneous: float = 0.5, max_lag: int = 1, n_times: int = 1000, n_realizations: int = 1, weight_dist: ~typing.Callable = <scipy.stats._continuous_distns.norm_gen object>, random_state: int | None = None)[source]#
- Simulate a linear VAR process of a “stationary” causal graph. - Parameters:
- n_variablesint, optional
- The number of variables to included in the final simulation, by default 5. 
- p_time_selffloat, optional
- The probability for an edge across time for the same variable, by default 0.5. 
- p_time_varsfloat, optional
- The probability for an edge across time for different variables, by default 0.5. 
- p_contemporaneousfloat, optional
- The probability for a contemporaneous edge among different variables, by default 0.5. Can be set to 0 to specify that the underlying causal process has no instantaneous effects. 
- max_lagint, optional
- The maximum lag allowed in the resulting process, by default 1. 
- n_timesint, optional
- The number of time points to generate per realization, by default 1000. See - simulate_data_from_varfor more information.
- n_realizationsint, optional
- The number of independent realizations, by default 1. See - simulate_data_from_varfor more information.
- weight_distCallable, optional
- The distribution of weights for connections, by default None. 
- random_stateint, optional
- The random state, by default None. 
 
- Returns:
- dataArrayLike of shape (n_nodes, n_times * n_realizations)
- The simulated data. 
- var_modelStationaryTimeSeriesDiGraph of shape (n_nodes, n_nodes, max_lag)
- The resulting time-series causal graph. 
 
 - Notes - In stationary time-series graphs without latent confounders, there is never a worry about acyclicity among “lagged nodes” in the graph. However, if we model the situation where there are instantaenous, or contemporaneous effects, then those edges may form a cycle when simulating the graph. Therefore, if - p_contemporaneous > 0, then an additional check for DAG among the contemporaneous edge network is checked.- To simulate VAR process with latent confounders (i.e. missing variable time-series), then one can simply simulate the full VAR process and then delete the simulated time-series data from the latent variable.