Learn R Programming

catR (version 2.6)

createItemBank: Item bank generation

Description

This command creates an item bank from a matrix of item parameters. Item information functions are evaluated for all items and a fine grid of ability levels, to be supplied. Subgroups of items can also be specified for content balancing purposes.

Usage

createItemBank(items=100, cb=FALSE, model="4PL", 
  aPrior=c("norm",1,0.2), bPrior=c("norm",0,1), 
  cPrior=c("unif",0,0.25), dPrior=c("unif",0.75,1), 
  thMin=-4, thMax=4, step=0.01, seed=1, D=1)

Arguments

items
either an integer value or a matrix (or data frame) of item parameters (and possibly subgroups of items). See Details.
cb
logical: should subgroups of items be returned in the item bank for content balancing pruposes? (default is FALSE).
model
character: the name of the logistic IRT model, with possible values "1PL", "2PL", "3PL" or "4PL" (default). Ignored if items is a matrix or a data frame.
aPrior
vector of three components, specifying the prior distribution and item parameters for generating the item discrimination levels. Ignored if items is a matrix or a data frame. See Details.
bPrior
vector of three components, specifying the prior distribution and item parameters for generating the item difficulty levels. Ignored if items is a matrix or a data frame. See Details.
cPrior
vector of three components, specifying the prior distribution and ite mparameters for generating the item lower asymptote levels. Ignored if items is a matrix or a data frame. See Details.
dPrior
vector of three components, specifying the prior distribution and item parameters for generating the item upper asymptote levels. Ignored if items is a matrix or a data frame. See Details.
thMin
numeric: the lower bound for the fine grid of ability levels (default is -4). See Details.
thMax
numeric: the upper bound for the fine grid of ability levels (default is 4). See Details.
step
numeric: the step value for the fine grid of ability levels (default is 0.01). See Details.
seed
numeric: the random seed number for the generation of item parameters (default is 1). See set.seed for further details. Ignored if items is a matrix or a data frame.
D
numeric: the metric constant. Default is D=1 (for logistic metric); D=1.702 yields approximately the normal metric (Haley, 1952).

Value

  • A list of class "itBank" with four arguments:
  • itemParthe matrix of item parameters, either provided by items or generated.
  • thetaa vector with the ability levels of the fine grid, defined by arguments thMin, thMax and step.
  • infoTaba matrix of Fisher information functions, evaluated for each ability level (one row per ability level) and each item (one column per item).
  • cbGroupeither the fifth column of items (if cb was set to TRUE in addition) or NULL.

eqn

$a_i$

code

NULL

Details

If items is a matrix or a data frame, it has the following format: one row per item and four (or five) columns, with respectively the discrimination $a_i$, the difficulty $b_i$, the pseudo-guessing $c_i$ and the inattention $d_i$ parameters (Barton and Lord, 1981). A fifth column can be added; in this case it holds the names of the subgroups of items (for content balancing purposes for instance). This column is returned in the output list only if items has five columns and cb argument is set to TRUE (default value is FALSE). If items is an integer, it corresponds to the number of items to be included in the item bank. Corresponding item parameters are drawn from distributions to be specified by arguments aPrior, bPrior, cPrior and dPrior for respective parameters $a_i$, $b_i$, $c_i$ and $d_i$. Each of these arguments is of length 3, the first component containing the name of the distribution and the last two components coding the distribution parameters. Possible distributions are:
  • thenormal distribution$N(\mu, \sigma^2)$, available for parameters$a_i$and$b_i$. It is specified by"norm"as first argument while the latter two arguments contain the values of$\mu$and$\sigma$respectively.
the log-normal distribution $\log N(\mu, \sigma^2)$, available for parameter $a_i$ only. It is specified by "lnorm" as first argument while the latter two arguments contain the values of $\mu$ and $\sigma$ respectively. the uniform distribution $U([a,b])$, available for all parameters. It is specified by "unif" as first argument while the latter two arguments contain the values of $a$ and $b$ respectively. Note that taking $a$ and $b$ equal to a common value, say $t$, makes all parameters to be equal to $t$. the Beta distribution $Beta(\alpha, \beta)$, available for parameters $c_i$ and $d_i$. It is specified by "beta" as first argument while the latter two arguments contain the values of $\alpha$ and $\beta$ respectively.

References

Baker, F.B. (1992). Item response theory: parameter estimation techniques. New York, NY: Marcel Dekker. Barton, M.A., and Lord, F.M. (1981). An upper asymptote for the three-parameter logistic item-response model. Research Bulletin 81-20. Princeton, NJ: Educational Testing Service. Haley, D.C. (1952). Estimation of the dosage mortality relationship when the dose is subject to error. Technical report no 15. Palo Alto, CA: Applied Mathematics and Statistics Laboratory, Stanford University. Magis, D., and Raiche, G. (2012). Random Generation of Response Patterns under Computerized Adaptive Testing with the R Package catR. Journal of Statistical Software, 48 (8), 1-31. URL http://www.jstatsoft.org/v48/i08/

See Also

Ii

Examples

Run this code
# Loading the 'tcals' parameters 
 data(tcals)
  
 # Item bank creation with 'tcals' item parameters
 createItemBank(tcals)

 # Changing the fine grid of ability levels
 createItemBank(tcals, thMin=-2, thMax=2, step=0.05)

 # Item bank creation with 500 items
 createItemBank(items=500)

 # Item bank creation with 100 items, 2PL model and log-normal 
 # distribution with parameters (0, 0.1225) for discriminations
 createItemBank(items=100, model="2PL", aPrior=c("lnorm",0,0.1225))

 # A completely identical method as for previous example
 createItemBank(items=100, aPrior=c("lnorm",0,0.1225), 
  cPrior=c("unif",0,0), dPrior=c("unif",1,1))

 # Item bank creation with 'tcals' item parameters and keeping
 # the subgroups of items
 createItemBank(tcals, cb=TRUE)

Run the code above in your browser using DataLab