superstats.simulation.cognitive.rdm#
Racing Diffusion Model simulator.
Functions
|
Sample from the Racing Diffusion Model (RDM). |
- superstats.simulation.cognitive.rdm.sample_rdm(v_base, v_diff, a_base, tau, bias, sigma_diff, num_accumulators=2, correct_idx=None, sigma_base=1.0, dt=0.001, max_steps=10000)[source]#
Sample from the Racing Diffusion Model (RDM).
Simulates num_accumulators independent diffusion accumulators racing from a starting point of 0 toward their own threshold; the first to cross wins and determines the response and response time. On each trial, the accumulator at index correct_idx[i] is treated as the correct/target accumulator: it receives a drift advantage of v_diff, a bias-scaled threshold, and noise scaled by sigma_diff. All other accumulators on that trial share the disadvantaged drift, an unscaled threshold, and noise fixed at sigma_base.
- Parameters:
- v_base
np.ndarrayofshape(num_trials,) Base drift rate shared by all accumulators before the correct/incorrect adjustment.
- v_diff
np.ndarrayofshape(num_trials,) Drift rate difference between the correct and incorrect accumulators. The correct accumulator gets v_base + v_diff / 2; all other accumulators get v_base - v_diff / 2.
- a_base
np.ndarrayofshape(num_trials,) Base threshold distance from the origin for each trial.
- tau
np.ndarrayofshape(num_trials,) Non-decision times for each trial.
- bias
np.ndarrayofshape(num_trials,) Threshold scaling factor in [0, 1] for the correct/target accumulator: its threshold is a_base * bias. All other accumulators use the unscaled threshold a_base.
- sigma_diff
np.ndarrayofshape(num_trials,) Noise scaling factor in [0, +inf) for the correct/target accumulator: its noise SD is sigma_base * sigma_diff. All other accumulators always use sigma_base directly.
- num_accumulators
int Number of racing accumulators per trial (fixed across trials).
- correct_idx
np.ndarrayofshape(num_trials,),optional Index (into 0 .. num_accumulators - 1) of the correct/target accumulator for each trial. If left empty, accumulator 0 is treated as correct on every trial.
- sigma_base
float,optional, default: 1.0 Diffusion noise standard deviation of the non-correct accumulators. Fixed (not estimated per trial) for identifiability.
- dt
float,optional, default: 0.001 Time step size.
- max_steps
int,optional, default: 10000 Maximum number of diffusion steps per trial before timing out.
- v_base
- Returns:
- data
dictofnp.ndarray Named decision data. “response_time” contains response times (or -1.0 on timeout) and “choice” contains the index of the winning accumulator (or -1.0 on timeout). Each array has shape (num_trials,).
- data
- Parameters:
- Return type: