Skip to main content

Computerized Adaptive Testing Simulator

Project description

Logo


Unit tests Test Coverage Latest Version Digital Object Identifier

catsim is a Python package for computerized adaptive testing (CAT) simulations. It provides multiple methods for:

These methods can either be used in a standalone fashion [1] to power other software or be used with catsim to simulate the application of computerized adaptive tests [2], given a sample of examinees, represented by their ability levels, and an item bank, represented by their parameters according to some logistic Item Response Theory model.

What's a CAT

Computerized adaptive tests are educational evaluations, usually taken by examinees in a computer or some other digital means, in which the examinee's ability is evaluated after the response of each item. The new ability is then used to select a new item, closer to the examinee's real ability. This method of test application has several advantages compared to the traditional paper-and-pencil method or even linear tests applied electronically, since high-ability examinees are not required to answer all the easy items in a test, answering only the items that actually give some information regarding his or hers true knowledge of the subject at matter. A similar, but inverse effect happens for those examinees of low ability level.

More information is available in the docs and over at Wikipedia.

Installation

Install it using pip install catsim.

Basic Usage

NEW: there is now a Colab Notebook teaching the basics of catsim!

  1. Have an item matrix;
  2. Have a sample of examinee proficiencies, or a number of examinees to be generated;
  3. Create an initializer, an item selector, a ability estimator and a stopping criterion;
  4. Pass them to a simulator and start the simulation.
  5. Access the simulator's properties to get specifics of the results;
  6. Plot your results.
from catsim.initialization import RandomInitializer
from catsim.selection import MaxInfoSelector
from catsim.estimation import NumericalSearchEstimator
from catsim.stopping import MaxItemStopper
from catsim.simulation import Simulator
from catsim.cat import generate_item_bank
initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
Simulator(generate_item_bank(100), 10).simulate(initializer, selector, estimator, stopper)

Dependencies

All dependencies are listed on setup.py and should be installed automatically.

To run the tests, you'll need to install the testing requirements pip install catsim[testing].

To generate the documentation, install the necessary dependencies with pip install catsim[docs].

To ensure code is valid and formatted before submission, install the necessary development dependencies with pip install catsim[dev].

Compatibility

catsim is compatible and tested against Python 3.5, 3.6, 3.7, 3.8 and 3.9.

Important links

Citing catsim

You can cite the package using the following bibtex entry:

@article{catsim,
  author = {Meneghetti, Douglas De Rizzo and Aquino Junior, Plinio Thomaz},
  title = {Application and simulation of computerized adaptive tests through the package catsim},
  year = 2018,
  month = jul,
  archiveprefix = {arXiv},
  eprint = {1707.03012},
  eprinttype = {arxiv},
  journal = {arXiv:1707.03012 [stat]},
  primaryclass = {stat}
}

If you are looking for IRT item parameter estimation...

catsim does not implement item parameter estimation. I have had great joy outsourcing that functionality to the mirt R package along the years. However, since many users request packages with item parameter estimation capabilities in the Python ecosystem, here are a few links. While I have not used them personally, specialized packages like these are hard to come by, so I hope these are helpful.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

catsim-0.17.3.tar.gz (58.3 kB view details)

Uploaded Source

Built Distribution

catsim-0.17.3-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

File details

Details for the file catsim-0.17.3.tar.gz.

File metadata

  • Download URL: catsim-0.17.3.tar.gz
  • Upload date:
  • Size: 58.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for catsim-0.17.3.tar.gz
Algorithm Hash digest
SHA256 4e1ba4cf90cc2c20cc826ad0282adb19716bcbb6b30be2856aa68c31cc4b18b9
MD5 a57760af22df66643cf85d98c9d1355b
BLAKE2b-256 9a62f0fc1b95f0f0b5df18acfc1fb8eb62f18a21a12d83cb14a52fb86bd93149

See more details on using hashes here.

File details

Details for the file catsim-0.17.3-py3-none-any.whl.

File metadata

  • Download URL: catsim-0.17.3-py3-none-any.whl
  • Upload date:
  • Size: 49.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for catsim-0.17.3-py3-none-any.whl
Algorithm Hash digest
SHA256 daa88976ba35b644e20b2d6d95a7da6a945f5654ccc11d83c064acbeb4e7590b
MD5 2e65efa8ffbe00d4489ec23c00dc06b6
BLAKE2b-256 56d926dc9cb8cca834d2035d983a4a0b5589a0ad76670d99646914942f40342b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page