
meow is a package for conducting simulations of computer
adaptive testing (CAT). The pitch here is that meow is a
framework that facilitates reproducible comparisons between different
combinations of data generating processes (DGPs), item selection
algorithms, and parameter update algorithms.
We do this by functionalizing these components as treating them
modular for use in a core simulation harness that produces consistent
outputs with some ggplot2-based visualization tools. The
goal is to expose the structure of these component functions to the
user, allowing them to implement their own custom DGPs, selection
algorithms, and update algorithms.
Users are also encouraged to contribute function modules associated with their research projects, facilitating more community interaction.
Interested users can install using:
devtools::install_github("klintkanopka/meow")A simulation is a single call to meow(), which takes an
item selection function, a parameter update function, and a data
loader:
library(meow)
sim <- meow(
select_fun = select_max_info, # item selection algorithm
update_fun = update_theta_mle, # parameter update algorithm
data_loader = data_simple_1pl, # data generating process
data_args = list(N_persons = 100, N_items = 50),
fix = "item" # treat item parameters as known
)
head(sim$results) # per-iteration estimates and biassim$results is a tidy data frame (one row per iteration,
est/bias columns per parameter) that plugs directly into
ggplot2. sim$adj_mats holds the item
co-exposure adjacency matrices.
The real value of meow is in swapping in your own
algorithms. Internally the simulation state is matrix-based for speed:
item selection and parameter update functions receive a
respondent-by-item response matrix R and an integer
administration matrix admin, and person/item parameters
stay as data frames so you can add arbitrary columns. See
vignette("extending-meow") for the full module contracts,
or use meow_long() to work with long data frames
instead.