Fits a Rasch model using CmdStan. The model is:
logit(P(correct)) = alpha_j + delta - beta_k
Arguments
- data
A matrix or data frame of binary (0/1) responses. Rows = students, Columns = questions. NA is allowed.
- prior_delta
Prior for mean ability:
c(mean, sd). Defaultc(0, 1)means Normal(0, 1).- prior_alpha_sd
Prior SD for student ability deviations. Default 1.5 means alpha ~ Normal(0, 1.5).
- prior_beta
Prior for item difficulties when all items share the same prior:
c(mean, sd). Defaultc(0, 1.5). Ignored ifprior_beta_meanorprior_beta_sdis provided.- prior_beta_mean
Numeric vector of length K (one per item). Per-item prior means for difficulty. Overrides
prior_beta.- prior_beta_sd
Numeric vector of length K (one per item). Per-item prior SDs for difficulty. Overrides
prior_beta.- chains
Number of MCMC chains. Default 4.
- parallel_chains
Chains to run in parallel. Default 4.
- iter_warmup
Warmup iterations per chain. Default 1000.
- iter_sampling
Sampling iterations per chain. Default 1000.
- seed
Random seed for reproducibility.
- ...
Extra arguments passed to cmdstanr's sample() method.
Examples
if (FALSE) { # \dontrun{
sim <- rasch_simulate(J = 200, K = 10, seed = 42)
# Default priors (same for all items)
fit <- rasch_fit(sim$data, seed = 123)
# Per-item priors: item 3 is known to be hard
K <- ncol(sim$data)
b_mean <- rep(0, K)
b_mean[3] <- 2.0
fit <- rasch_fit(sim$data, prior_beta_mean = b_mean, seed = 123)
} # }