rt_simulate: Simulate repeat test-takers with known misconduct

View source: R/simulate.R

rt_simulateR Documentation

Simulate repeat test-takers with known misconduct

Description

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)
table(sim$truth$preknowledge)

retestR documentation built on Oct. 8, 2026, 5:08 p.m.