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