CRAN resubmission. Documentation-only changes; no user-facing API or behavior changes.
DESCRIPTION: expanded all acronyms on first use (API,
IRT, 1PL, 2PL, MCAR, MAR, MSE, RMSE, SE) per CRAN reviewer request.man/: replaced \dontrun{} with
\donttest{} in irt_simulate,
summary.irt_results, plot.irt_results,
plot.summary_irt_results, recommended_n,
print.irt_results, and
print.summary_irt_results examples per CRAN reviewer
request. Examples remain wrapped (not unwrapped) because each depends on
a ~300-fit irt_simulate() call that exceeds the 5-second
CRAN example-execution budget.Initial CRAN release.
irt_design() specifies the data-generating IRT model
(items, parameters, theta distribution).irt_study() adds study conditions (sample sizes,
missing-data mechanism, optional separate estimation model).irt_simulate() runs the Monte Carlo simulation loop
with deterministic seeding and optional parallelism.summary(), plot(), and
recommended_n() methods extract simulation-based
sample-size recommendations from irt_results objects."none" — complete data"mcar" — missing completely at random"mar" — missing at random (monotone,
trait-dependent)"booklet" — structured booklet assignment with
common-item overlap"linking" — two-form linked design with user-supplied
linking matrixmse), root mean squared error
(rmse), bias, absolute bias, standard error
(se), empirical coverage, Monte Carlo SE of MSE
(mcse_mse).R/criterion_registry.R.criterion_fn
argument to summary.irt_results() — callbacks receive
estimates, true_value, ci_lower,
ci_upper, and converged and return named
numeric vectors appended to item_summary.irt_study(estimation_model = ...) allows fitting a
different IRT model than the one used to generate data (e.g., generate
2PL, fit 1PL). Compatible cross-pairs: (1PL, 2PL),
(2PL, 1PL), same-model. GRM is not cross-compatible with
dichotomous models.irt_simulate(parallel = TRUE) dispatches iterations
across workers via future.apply::future_lapply().parallel setting) guaranteed. Cross-mode
results differ because serial uses Mersenne-Twister and parallel uses
L’Ecuyer-CMRG substreams — both statistically valid.future::plan().cli::cli_progress_bar() replaces
cat()-based progress reporting (suppressible with
progress = FALSE).cli::cli_abort() error messages with
valid-option enumerations for invalid model, criterion, missing
mechanism, and estimation_model arguments.R.rsp::asis
because re-running the Monte Carlo simulations during package checks
would exceed CRAN’s build-time budget. The source .Rmd
files and data-raw/precompute_vignettes.R are available in
the GitHub repository for users who wish to reproduce results
locally.cli, future.apply,
ggplot2, mirt, rlangfuture, knitr,
R.rsp, rmarkdown, scales,
testthatSchroeders, U., and Gnambs, T. (2025). Sample size planning in item response theory: A 10-decision framework. Advances in Methods and Practices in Psychological Science. https://doi.org/10.1177/25152459251314798