Learn R Programming

xxIRT (version 1.0.1)

cat.sim: Computerized Adaptive Testing

Description

cat.sim simulates CAT sessions with user-defined algorithms

Usage

cat.sim(theta, pool, opts, cat.select = cat.select.default, cat.estimate = cat.estimate.default, cat.stop = cat.stop.default, debug = FALSE)
cat.select.default(cat.data)
cat.estimate.default(cat.data)
cat.stop.default(cat.data)
"print"(x, ...)
"plot"(x, ...)

Arguments

theta
the true value of theta parameter
pool
an item pool (data.frame)
opts
a list of option parameters: min and max are required.
cat.select
the selection rule
cat.estimate
the estimation rule
cat.stop
the stopping rule
debug
TRUE to print debugging information
cat.data
a list of CAT inputs and outputs (see details)
x
a cat object
...
further arguments

Value

cat.sim returns a cat object (see details section)cat.select.default returns a list with an selected item (item) and an updated pool (pool)cat.estimate.default returns a numeric theta estimatecat.stop.default returns a boolean value: TRUE to stop and FALSE to continue

Details

All inputs are combined into a list called cat.data which is passed to cat.select, cat.estimate, and cat.stop. Besides, cat.data contains outpus too. In details, cat.data includes pool (the item pool), opts (options passed from arguments), len (test length), true (true theta), est (estimated theta), items administered items), stats (history of response, theta, se), and cat.data$admin (combining items and stats) When writing new selection, estimation, termination functions, use cat.data as the only argument and follow the structure strictly. For example, the selection function should return a list of selected item (item) and updated pool (pool). e.g., foo(cat.data){...; return(list(item=item, pool=pool))}. The estimation function should return an estimated theta. e.g., foo(cat.data){...; return(theta)}. The termination function should return a boolean value. e.g., foo(cat.data){...; return(FALSE)}

cat.select.default randomly selects an item from the k (set in options using keyword random or 5 by default) most informative items.

cat.estimate.default estimates theta using EAP for a response vector of all 1's or 0's and MLE otherwise

cat.stop.default evaluates one of the three criteria after reaching minimum lenght: (1) if opts$stop.se is set, then evalute if the se reaches the se threshold; (2) if opts$stop.mi is set, then evalute if all item fails to reach the mi threshold; (3) if opts$stop.cut is set, then evalute if the 95

Examples

Run this code
pool <- gen.irt(1, 100)$items
opts <- list(min=10, max=30, stop.se=.3)
x <- cat.sim(0.1, pool, opts)
x
plot(x)

Run the code above in your browser using DataLab