Simulation module

Functions for data simulation from PCM-models @author: jdiedrichsen

sim.make_dataset(model, theta, cond_vec, n_channel=30, n_sim=1, signal=1, noise=1, signal_cov_channel=None, noise_cov_channel=None, noise_cov_trial=None, use_exact_signal=False, use_same_signal=False, part_vec=None, rng=None)

Simulates a fMRI-style data set

Parameters:
  • model (PcmPy.Model) – the model from which to generate data

  • theta (numpy.ndarray) – vector of parameters (one dimensional)

  • cond_vec (numpy.ndarray) – RSA-style model: vector of experimental conditions Encoding-style: design matrix (n_obs x n_cond)

  • n_channel (int) – Number of channels (default = 30)

  • n_sim (int) – Number of simulation with the same signal (default = 1)

  • signal (float) – Signal variance (multiplied by predicted G)

  • signal_cov_channel (numpy.ndarray) – Covariance matrix of signal across channels

  • noise (float) – Noise variance

  • noise_cov_channel (numpy.ndarray) – Covariance matrix of noise (default = identity)

  • noise_cov_trial (numpy.ndarray) – Covariance matrix of noise across trials

  • use_exact_signal (bool) – Makes the signal so that G is exactly as specified (default: False)

  • use_same_signal (bool) – Uses the same signal for all simulation (default: False)

  • part_vec (np.array) – Optional partition that is added to the data set obs_descriptors

  • rng (np.random.default_rng) – Optional random number generator object to pass specific state

Returns:

data (list) – List of pyrsa.Dataset with obs_descriptors

sim.make_design(n_cond, n_part)

Makes simple fMRI design with n_cond, each measures n_part times

Parameters:
  • n_cond (int) – Number of conditions

  • n_part (int) – Number of partitions

Returns:
  • Tuple (cond_vec, part_vec)

  • cond_vec (np.ndarray) – n_obs vector with condition

  • part_vec (np.ndarray) – n_obs vector with partition

sim.make_signal(G, n_channel, make_exact=False, chol_channel=None, rng=None)

Generates signal exactly with a specified second-moment matrix (G)

Parameters:
  • G (np.array) – desired second moment matrix (ncond x ncond)

  • n_channel (int) – Number of channels

  • make_exact (bool) – Make the signal so the second moment matrix is exact (default: False)

  • chol_channel – Cholensky decomposition of the signal covariance matrix (default: None - makes signal i.i.d.)

  • rng (np.random.default_rng) – Optional random number generator object to pass specific state

Returns:

np.array (n_cond x n_channel) – random signal