Learn R Programming

shortIRT (version 1.0.0)

bench: Benchmark Procedure

Description

Create a Short Test Form (STF) using a benchmark procedure (i.e., the n most informative items are selected, where n is the number of items to include in the STF)

Usage

bench(item_par = NULL, iifs = NULL, theta = NULL, num_item = NULL)

Value

An object of class bench of length 3 with:

  • stf: dataframe with the items selected for inclusion in the STF (isel), their maximum information function (maxiif), for a specific latent trait level \(\theta\) (column theta)

  • item_par: the original dataframe containing the item parameters

  • selected_items: dataframe with the parameters of the selected items

Arguments

item_par

data.frame, dataframe with nrows equal to the number of items and 4 columns, one for each of the item parameters. The columns must be named "a", "b", "c", "e" and must contain the respective IRT parameters, namely discrimination \(a_i\), location \(b_i\), pseudo-guessing \(c_i\), and upper asymptote \(e_i\).

iifs

data.frame, dataframe with n-rows equal to the length of the latent trait \(\theta\) and n-cols equal to the number of items in the full-length test. It contains the item information functions (IIFs) of the items in the full-length test. Cannot use both ipar and iifs.

theta

numeric, vector with the latent trait values

num_item

integer, the number of items to include in the short test form

Details

A short test form composed of \(N\) items is constructed from an item bank \(B\) by selecting the items with the highest item information values.

Let \(I_i(\theta)\) denote the item information function (IIF) for item \(i\), with \(i = 1, \dots, |B|\). The IIFs of the item bank are sorted in decreasing order:

$$ \mathrm{iif} = \left( \max_{1 \le i \le |B|} I_i(\theta), \dots, \min_{1 \le i \le |B|} I_i(\theta) \right) $$

The first \(N\) items in the ordered vector \(\mathrm{iif}\), with \(N < |B|\), are selected to be included in the short test form.

Examples

Run this code
set.seed(123)
n <- 50
theta <- rnorm(500, sd = 2)
item_par <- data.frame(
  b = runif(n, -3, 3),
  a = runif(n, 1.2, 1.9),
  c = rep(0, n),
  e = rep(1, n)
)
resB <- bench(item_par, theta = theta, num_item = 5)
str(resB)

Run the code above in your browser using DataLab