MyNixOS website logo
Description

Unified Framework for Computer Adaptive Testing Simulations.

Provides an extensible framework for conducting simulations to compare data generating processes, item selection algorithms, parameter update algorithms, and stopping rules in computer adaptive testing (CAT) applications. Bundled algorithms include the Elo-based update rules of Klinkenberg, Straatemeier and van der Maas (2011) <doi:10.1016/j.compedu.2011.02.003> and Vermeiren, Kruis, Bolsinova, van der Maas and Hofman (2025) <doi:10.1016/j.caeai.2025.100376>.

meow meow website

R-CMD-check License: MIT

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.

Installation

Interested users can install using:

devtools::install_github("klintkanopka/meow")

Usage

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 bias

sim$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.

Writing your own modules

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.

Metadata

Version

1.0.0

License

Unknown

Platforms (79)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    wasip1
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasip1
  • wasm64-wasip1
  • x86_64-cygwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows