Learn R Programming

catR (version 3.4)

startItems: Selection of the first items

Description

This command selects the first items of the adaptive test, either randomly or on the basis of their difficulty level (for dichotomous items only).

Usage

startItems(itemBank, model = NULL, fixItems = NULL, seed = NULL, nrItems = 1, 
 	 theta = 0, D = 1, halfRange = 2, startSelect = "MFI", nAvailable = NULL)

Arguments

itemBank
numeric: a suitable matrix of item parameters. See Details.
model
either NULL (default) for dichotomous models, or any suitable acronym for polytomous models. Possible values are "GRM", "MGRM", "PCM", "GPCM", "RSM" and "NRM". See
fixItems
either a vector of integer values or NULL (default). See Details.
seed
either a numeric value, NA or NULL (default). Ignored if fixItems is not NULL. See Details.
nrItems
numeric: the number of starting items to be selected (default is 1). Can be equal to zero to avoid initial selection of items (see Details). Ignored if fixItems is not NULL.
theta
numeric: the initial ability level for selecting the first items (default is 0). Ignored if either fixItems or seed is not NULL. See Details.
D
numeric: the metric constant. Default is D=1 (for logistic metric); D=1.702 yields approximately the normal metric (Haley, 1952). Ignored if model is not NULL and if startSelect is not
halfRange
numeric: the half of the range of initial ability values (default is 2). Ignored if either fixItems or seed is not NULL. See Details.
startSelect
character: the criterion for selecting the first items. Possible values are "bOpt", "thOpt", "progressive", "proportional", and "MFI" (default). See Details.
nAvailable
either a boolean vector indicating which items (denoted by 1's) are available at the start of the test and which (denoted by 0's) are not, or NULL (default). See Details.

Value

  • A list with four arguments:
  • itemsthe selected items (identified by their number in the item bank) or NULL (if nrItems is 0).
  • parthe matrix of item parameters of the selected items (one row per item) or NULL (if nrItems is 0).
  • thStartthe sequence of starting ability values used for selecting the items or NA (if not applicable) or NULL (if nrItems is 0).
  • startSelectthe value of the startSelect argument or NA (if not applicable) or NULL (if nrItems is 0).

code

sum(nAvailable)

itemize

  • the set (-1, 1) can be obtained by specifying the triplet to (2, 0, 1);

item

  • the set (-1, 0, 1) can be obtained by specifying the triplet to (3, 0, 1);
  • the set (-1, 0, 1, 2) can be obtained by specifying the triplet to (4, 0.5, 1.5);
  • etc.

Details

This function permits to select the first item(s) of the test. It works with both dichotomous and polytomous item banks. Dichotomous IRT models are considered whenever model is set to NULL (default value). In this case, it must be a matrix with one row per item and four columns, with the values of the discrimination, the difficulty, the pseudo-guessing and the inattention parameters (in this order). These are the parameters of the four-parameter logistic (4PL) model (Barton and Lord, 1981). Polytomous IRT models are specified by their respective acronym: "GRM" for Graded Response Model, "MGRM" for Modified Graded Response Model, "PCM" for Partical Credit Model, "GPCM" for Generalized Partial Credit Model, "RSM" for Rating Scale Model and "NRM" for Nominal Response Model. The it still holds one row per item, end the number of columns and their content depends on the model. See genPolyMatrix for further information and illustrative examples of suitable polytomous item banks. The number of starting items is given by the nrItems argument, with default value 1. It can be set to zero; in this case, only NULL values are returned in the output list and the CAT process will start without starting items. The first item(s) of the adaptive test can be selected by one of the following methods.
  1. By specifying the item(s) to be administered. The argumentfixItemsthen holds the item number(s) as listed in the item bank. SettingfixItemstoNULL(default value) disables this method.
By selecting it (them) randomly into the item bank. The argument seed permits to fix the random selection by specifying the random seed number. Setting seed to NA disables the random seed (though items are still picked up randomly in the bank); in other words, successive runs of startItems with seed=NA may lead to different item(s) selection. Setting seed to NULL (default value) disables this selection method. By selecting the item(s) according to an initial sequence of ability values (see below). In this case, five criteria can be used, specified through the startSelect argument:
  1. "MFI"(default): one selects the most informative item(s) for the given initial ability value(s);
"bOpt": one selects the item(s) whose difficulty level is as close as possible to the inital ability value(s); "thOpt": one selects the item(s) with the ability value where they get their maximum Fisher information is as close as possible to the inital ability value(s); "progressive" for the progressive method (see nextItem); "proportional" for the proportional method (see nextItem).
If the "progressive" or "proportional" methods

References

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

testList, genPolyMatrix

Examples

Run this code
## Dichotomous models ##

 # Loading the 'tcals' parameters 
 data(tcals)

 # Item bank creation with 'tcals' item parameters
 bank <- as.matrix(tcals[,1:4])
 
 # Random selection of 4 starting items
 startItems(bank, seed = 1, nrItems = 4)

 # Random selection of 4 starting items without fixing the seed
 startItems(bank, seed = NA, nrItems = 4)
 startItems(bank, seed = NA, nrItems = 4) # may provide a different result!

 # Selection of the first 5 starting items
 startItems(bank, fixItems = 1:5)

 # Selecting 1 starting item, initial ability estimate is 0
 startItems(bank) 

 # Selecting 3 starting items, initial ability estimate is 1
 # and half range is 2
 startItems(bank, nrItems = 3, theta = 1, halfRange = 2) 

 # Idem but with 'bOpt' criterion
 startItems(bank, nrItems = 3, theta = 1, halfRange = 2, startSelect = "bOpt")
 
 # Selecting 5 starting items, initial ability estimate is 2
 # and half range is 3
 startItems(bank, nrItems = 5, theta = 2, halfRange = 3) 

 # Selecting only the first 10 items as available items
 avail <- c(rep(1, 10), rep(0, nrow(bank)-10))
 startItems(bank, nrItems = 5, theta = 2, halfRange = 3, nAvailable = avail) 

 # Selecting too many items among available ones
 startItems(bank, nrItems = 11, theta = 2, halfRange = 3, nAvailable = avail) 


## Polytomous models ##

 # Generation of an item bank under GRM with 100 items and at most 4 categories
 m.GRM <- genPolyMatrix(100, 4, "GRM")
 m.GRM <- as.matrix(m.GRM)

 # Random selection of 4 starting items
 startItems(m.GRM, model = "GRM", seed = 1, nrItems = 4)

 # Selection of the first 5 starting items
 startItems(m.GRM, model = "GRM", fixItems = 1:5)

 # Selecting 3 starting items, initial ability estimate is 1
 # and half range is 2
 startItems(m.GRM, model = "GRM", nrItems = 3, theta = 1, halfRange = 2) 

 # Idem but with 'bOpt' criterion
 startItems(m.GRM, model = "GRM", nrItems = 3, theta = 1, halfRange = 2, 
            startSelect = "bOpt")
 
 # Selecting only the first 10 items as available items
 avail <- c(rep(1, 10), rep(0, nrow(m.GRM)-10))
 startItems(m.GRM, model = "GRM", nrItems = 5, theta = 2, halfRange = 3, 
            nAvailable = avail) 

 # Selecting too many items among available ones
 startItems(m.GRM, model = "GRM", nrItems = 11, theta = 2, halfRange = 3, 
            nAvailable = avail) 


 # Generation of an item bank under PCM with 20 items and 4 categories
 m.PCM <- genPolyMatrix(20, 4, "PCM", same.nrCat = TRUE)
 m.PCM <- as.matrix(m.PCM)

 # Random selection of 4 starting items
 startItems(m.PCM, model = "PCM", seed = 1, nrItems = 4)

 # Selection of the first 5 starting items
 startItems(m.PCM, model = "PCM", fixItems = 1:5)

 # Selecting 3 starting items, initial ability estimate is 1
 # and half range is 2
 startItems(m.PCM, model = "PCM", nrItems = 3, theta = 1, halfRange = 2) 

 # Idem but with 'bOpt' criterion
 startItems(m.PCM, model = "PCM", nrItems = 3, theta = 1, halfRange = 2, 
            startSelect = "bOpt")
 
 # Selecting only the first 10 items as available items
 avail <- c(rep(1, 10), rep(0, nrow(m.PCM)-10))
 startItems(m.PCM, model = "PCM", nrItems = 5, theta = 2, halfRange = 3, 
            nAvailable = avail) 

 # Selecting too many items among available ones
 startItems(m.PCM, model = "PCM", nrItems = 11, theta = 2, halfRange = 3, 
            nAvailable = avail)

Run the code above in your browser using DataLab