Skip to contents

Honest repeaters grow by `g0 + g1 * log(days / 30) + g2 * remediation` plus normal noise. A fraction `p_preknowledge` obtained a random share (`known_frac`) of the exposed pool between attempts: on those items they answer correctly with probability `known_p` and respond `speedup` log-units faster.

Usage

rt_simulate(
  n_persons = 2000,
  n_exposed_pool = 300,
  n_new_pool = 200,
  form_exposed = 40,
  form_new = 20,
  theta_mean = -0.5,
  theta_sd = 0.7,
  growth = c(0.1, 0.1, 0.4),
  growth_sd = 0.25,
  p_remediation = 0.4,
  p_preknowledge = 0.05,
  known_frac = 0.6,
  known_p = 0.95,
  speedup = 1,
  rt_sd = 0.5,
  seed = NULL
)

Arguments

n_persons

Number of repeaters.

n_exposed_pool, n_new_pool

Bank sizes.

form_exposed, form_new

Items per form from each pool; forms are disjoint across a person's two attempts.

theta_mean, theta_sd

Attempt-1 ability of repeaters.

growth

Coefficients `c(g0, g1, g2)`.

growth_sd

SD of individual growth.

p_remediation

Share of repeaters who completed remediation.

p_preknowledge

Share with preknowledge at attempt 2.

known_frac, known_p, speedup

Preknowledge strength.

rt_sd

Residual SD of log response time.

seed

Optional seed.

Value

An `rt_sim`: `$data` (an `rt_data`) and `$truth` (per-person `theta1`, `theta2`, `growth_mean`, `preknowledge`, `remediation`).

Examples

sim <- rt_simulate(n_persons = 200, form_exposed = 20, form_new = 10, seed = 1)
head(sim$truth)
#>   person      theta1      theta2 growth_mean preknowledge remediation
#> 1 C00001 -1.58992502 -0.86586927   0.3373354        FALSE           0
#> 2 C00002  0.84621456  1.63775475   0.7468100        FALSE           1
#> 3 C00003 -1.79978074 -1.53370503   0.3367124        FALSE           0
#> 4 C00004 -1.97428290 -1.88861236   0.2774952        FALSE           0
#> 5 C00005 -0.01164603  0.45846265   0.6142097        FALSE           1
#> 6 C00006  0.13521109  0.07242169   0.1659246        FALSE           0
table(sim$truth$preknowledge)
#> 
#> FALSE  TRUE 
#>   191     9