Learn R Programming

catR (version 3.4)

nextItem: Selection of the next item

Description

This command selects the next item to be administered, given the list of previously administered items and the current ability estimate, with several possible criteria. Item exposure and content balancing can also be controlled.

Usage

nextItem(itemBank, model = NULL, theta = 0, out = NULL, x = NULL, 
 	criterion = "MFI", method = "BM", priorDist = "norm", priorPar = c(0, 1), 
 	D = 1, range = c(-4, 4), parInt = c(-4, 4, 33), infoType = "observed", 
 	randomesque = 1, rule = "length", thr = 20, SETH = NULL, AP = 1, 
 	nAvailable = NULL, maxItems = 50, cbControl = NULL, cbGroup = 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
theta
numeric: the current value of the ability estimate (default is 0). Ignored if criterion is either "MLWI", "MPWI" or "random". See Details.
out
either a vector of integer values specifying the items previously administered, or NULL (default).
x
numeric: the provisional response pattern, with the same length as out (and NULL by default). Ignored if criterion is either "MFI", "bOtp", "thOpt", "proportional",
criterion
character: the method for next item selection. Possible values are "MFI" (default), "bOpt", "thOpt", "MLWI", "MPWI", "MEI", "MEPV", "progressive",
method
character: the ability estimator. Possible values are "BM" (default), "ML" and "WL". Ignored if method is not "MEI". See Details.
priorDist
character: the prior ability distribution. Possible values are "norm" (default) for the normal distribution, and "unif" for the uniform distribution. Ignored if type is neither "MPWI" nor "KLP"
priorPar
numeric: a vector of two components with the prior parameters. If priorDist is "norm", then priorPar contains the mean and the standard deviation of the normal distribution. If priorDist is "unif"<
D
numeric: the metric constant. Default is D=1 (for logistic metric); D=1.702 yields approximately the normal metric (Haley, 1952).
range
numeric: vector of two components specifying the range wherein the ability estimate must be looked for (default is c(-4,4)).
parInt
numeric: a vector of three numeric values, specifying respectively the lower bound, the upper bound and the number of quadrature points for numerical integration (default is c(-4,4,33)). Ignored if method is either "MFI"
infoType
character: the type of information function to be used. Possible values are "observed" (default) and "Fisher". Ignored if criterion is not "MEI". See Details.
randomesque
integer: the number of items to be chosen from the next item selection rule, among those the next item to be administered will be randomly picked up. Default value is 1 and leads to usual selection of the optimal item for the specified criterion
rule
character: the type of stopping rule for next item selection. Possible values are "length" (default) or "precision". Ignored if criterion is any other value than "progressive" or "proportional"
thr
numeric: the threshold related to the stopping rule. Ignored if criterion is neither "progressive" nor "proportional". See Details.
SETH
either a numeric value for the provisional standard errorNULL (default). Ignored if criterion is neither "progressive" nor "proportional", or if rule is not "precision". See
AP
numeric: the value of the acceleration parameter (default value is 1). Ignored if criterion is neither "progressive" nor "proportional". See Details.
nAvailable
either a numeric vector of zero and one entries to denote respectively which items are not available and are availbale, or NULL (default). Used for content balancing purposes only. See Details.
maxItems
integer: the maximum number of items to be administered during the adaptive test (default value is 50). See Details.
cbControl
either a list of accurate format to control for content balancing, or NULL. See Details.
cbGroup
either a factor vector of accurate format to control for content balancing, or NULL. See Details.

Value

  • A list with eight arguments:
  • itemthe selected item (identified by its number in the item bank).
  • parthe vector of item parameters of the selected item.
  • infothe value of the MFI, Fisher's information, the MLWI, the MPWI, the MEI, the EPV, the unsigned distance between estimated ability and difficulty parameter (or the ability value were maximum Fisher information is provided) or NA (for "random" criterion) for the selected item and the current ability estimate.
  • criterionthe value of the criterion argument.
  • randomesquethe value of the randomesque argument.
  • prior.propa vector with empirical proportions of items previously administered for each subgroup of items set by cbControl.
  • post.propa vector with empirical proportions of items previously administered, together with the one currently selected, for each subgroup of items set by cbControl.
  • th.propa vector with theoretical proportions given by cbControl$props.

code

NA

emph

  • Urry's procedure
  • randomesque
  • randomesque

eqn

$\theta^*$

enumerate

  1. If no item was administered yet, one subgroup is randomly picked up and the optimal item from this subgroup is selected.

item

  • If at least one subgroup wasn't targeted yet by item selection, one of these subgroups is randomly picked up and the optimal item from this subgroup is selected.
  • If at least one item per subgroup was already administered, the empirical relative proportions of items administered per subgroup are computed, and the subgroup(s) whose difference between empirical and theoretical (i.e. given by cbControl$props) proportions is (are) selected. The optimal item is then selected from this subgroup for next administration (in case of several such groups, one group is randomly picked up first).

Details

Currently twelve methods are available for selecting the next item to be administered in the adaptive test. All are avilable with dichotomous items and ten out of the twelve are also available for polytomous items. For a given current ability estimate, the next item is selected (among the available items) by using:
  1. the maximum Fisher information (MFI) criterion,
the so-called bOpt procedure (Urry, 1970) (not for polytomous items), the so-called thOpt procedure (see e.g., Barrada, Mazuela and Olea, 2006; Magis, 2013) (not for polytomous items), the maximum likelihood weighted information (MLWI) (Veerkamp and Berger, 1997), the maximum posterior weighted information (MPWI) (van der Linden, 1998), the maximum expected information (MEI) criterion (van der Linden, 1998), the minimum expected posterior variance (MEPV), the Kullback-Leibler (KL) divergency criterion (Chang and Ying, 1996), the posterior Kullback-Leibler (KLP) criterion (Chang and Ying, 1996), the progressive method (Barrada, Olea, Ponsoda, and Abad, 2008, 2010; Revuelta and Ponsoda, 1998), the proportional method (Barrada, Olea, Ponsoda, and Abad, 2008, 2010; Segall, 2004), or by selecting the next item completely randomly among the available items.

References

Baker, F.B. (1992). Item response theory: parameter estimation techniques. New York, NY: Marcel Dekker. Barrada, J. R., Mazuela, P., and Olea, J. (2006). Maximum information stratification method for controlling item exposure in computerized adaptive testing. Psicothema, 18, 156-159. Barrada, J. R., Olea, J., Ponsoda, V., and Abad, F. J. (2008). Incorporating randomness to the Fisher information for improving item exposure control in CATS. British Journal of Mathematical and Statistical Psychology, 61, 493-513. doi: 10.1348/000711007X230937 Barrada, J. R., Olea, J., Ponsoda, V., and Abad, F. J. (2010). A method for the comparison of item selection rules in computerized adaptive testing. Applied Psychological Measurement, 34, 438-452. doi: 10.1177/0146621610370152 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. Chang, H.-H., and Ying, Z. (1996). A global information approach to computerized adaptive testing. Applied Psychological Measurement, 20, 213-229. Choi, S. W., and Swartz, R. J. (2009). Comparison of CAT item selection criteria for polytomous items. Applied Psychological Measurement, 32, 419-440. doi: 10.1177/0146621608327801 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. Kingsbury, G. G., and Zara, A. R. (1989). Procedures for selecting items for computerized adaptive tests. Applied Measurement in Education, 2, 359-375. doi: 10.1207/s15324818ame0204_6 Leroux, A. J., Lopez, M., Hembry, I. and Dodd, B. G. (2013). A comparison of exposure control procedures in CATs using the 3PL model. Educational and Psychological Measurement, 73, 857-874. doi: 10.1177/0013164413486802 Magis, D. (2013). A note on the item information function of the four-parameter logistic model. Applied Psychological Measurement, 37, 304-315. doi: 10.1177/0146621613475471 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/ Revuelta, J., and Ponsoda, V. (1998). A comparison of item exposure control methods in computerized adaptive testing. Journal of Educational Measurement, 35, 311-327. doi: 10.1111/j.1745-3984.1998.tb00541.x Segall, D. O. (2004). A sharing item response theory model for computerized adaptive testing. Journal of Educational and Behavioral Statistics, 29, 439-460. doi: 10.3102/10769986029004439 Urry, V. W. (1970). A Monte Carlo investigation of logistic test models. Unpublished doctoral dissertation. West Lafayette, IN: Purdue University. van der Linden, W. J. (1998). Bayesian item selection criteria for adaptive testing. Psychometrika, 63, 201-216. doi: 10.1007/BF02294775 van der Linden, W. J., and Pashley, P. J. (2000). Item selection and ability estimation in adaptive testing. In W. J. van der Linden and C. A. W. Glas (Eds.), Computerized adaptive testing. Theory and practice (pp. 1-25). Boston, MA: Kluwer. Veerkamp, W. J. J., and Berger, M. P. F. (1997). Some new item selection criteria for adaptive testing. Journal of Educational and Behavioral Statistics, 22, 203-226. doi: 10.3102/10769986022002203

See Also

MWI, MEI, KL, thetaEst, test.cbList, randomCAT, genPolyMatrix

Examples

Run this code
## Dichotomous models ##

 # Loading the 'tcals' parameters 
 data(tcals)
 
 # Item bank creation with 'tcals' item parameters
 prov <- breakBank(tcals)
 bank <- prov$itemPar
 cbGroup <- prov$cbGroup

 ## MFI criterion

 # Selecting the next item, current ability estimate is 0
 nextItem(bank, theta = 0) # item 63 is selected

 # Selecting the next item, current ability estimate is 0 and item 63 is removed
 nextItem(bank, theta = 0, out = 63) # item 10 is selected

 # Selecting the next item, current ability estimate is 0 and items 63 and 10 are 
 # removed
 nextItem(bank, theta = 0, out = c(63, 10)) # item 62 is selected

 # Item exposure control by selecting three items (selected item will be either 10, 62 
 # or 63)
 nextItem(bank, theta = 0, randomesque = 3)

 ## bOpt method

 # Selecting the next item, current ability estimate is 0
 nextItem(bank, theta = 0, criterion = "bOpt") # item 24 is selected

 # Selecting the next item, current ability estimate is 0 and item 24 is removed
 nextItem(bank, theta = 0, out = 24, criterion = "bOpt")

 ## thOpt method

 # Selecting the next item, current ability estimate is 0
 nextItem(bank, theta = 0, criterion = "thOpt") # item 76 is selected

 # Selecting the next item, current ability estimate is 0 and item 76 is removed
 nextItem(bank, theta = 0, out = 76, criterion = "thOpt") # item 70 is selected

 ## MLWI and MPWI methods

 # Selecting the next item, current response pattern is 0 and item 63 was administered 
 # first
 nextItem(bank, x = 0, out = 63, criterion = "MLWI") 
 nextItem(bank, x = 0, out = 63, criterion = "MPWI")

 # Selecting the next item, current response pattern is (0,1) and item 19 is removed
 nextItem(bank, x = c(0, 1), out = c(63, 19), criterion = "MLWI")
 nextItem(bank, x = c(0, 1), out = c(63, 19), criterion = "MPWI")

 ## MEI method

 # Selecting the next item, current response pattern is 0 and item 63 was administered 
 # first
 # Ability estimation by WL method
 th <- thetaEst(rbind(bank[63,]), 0, method = "WL")
 nextItem(bank, x = 0, out = 63, theta = th, criterion = "MEI") # item 49 is selected

 # With Fisher information
 nextItem(bank, x = 0, out = 63, theta = th, criterion = "MEI", infoType = "Fisher") 
   # item 10 is selected

 ## MEPV method

 # Selecting the next item, current response pattern is 0 and item 63 was administered 
 # first
 # Ability estimation by WL method
 nextItem(bank, x = 0, out = 63, theta = th, criterion = "MEPV") # item 19 is selected

 ## KL and KLP methods

 # Selecting the next item, current response pattern is 0 and item 63 was administered 
 # first
 # Ability estimation by WL method
 nextItem(bank, x = 0, out = 63, theta = th, criterion = "KL") # item 19 is selected
 nextItem(bank, x = 0, out = 63, theta = th, criterion = "KLP") # item 44 is selected

 ## Progressive method

 # Selecting the next item, current ability estimate is 0 and item 63 was administered 
 # first
 # (default options: "length" rule with "thr = 20")
 nextItem(bank, out = 63, theta = 0, criterion = "progressive") 
 nextItem(bank, out = 63, theta = 0, criterion = "progressive")
  # result can be different!

 ## Proportional method

 # Selecting the next item, current ability estimate is 0 and item 63 was administered 
 # first
 # (default options: "length" rule with "thr = 20")
 nextItem(bank, out = 63, theta = 0, criterion = "proportional") 
 nextItem(bank, out = 63, theta = 0, criterion = "proportional")
  # result can be different!

 ## Random method

 # Selecting the next item, item 63 was administered first
 nextItem(bank, out = 63, criterion = "random") 
 nextItem(bank, out = 63, criterion = "random")  # may produce a different result


 ## Content balancing

 # Creation of the 'cbList' list with arbitrary proportions
 cbList <- list(names = c("Audio1", "Audio2", "Written1", "Written2", "Written3"), 
        props = c(0.1, 0.2, 0.2, 0.2, 0.3))

 # Selecting the next item, MFI criterion, current ability estimate is 0, items 12, 33, 
 # 46 and 63 previously administered
 nextItem(bank, theta = 0, out = c(12, 33, 46, 63), cbControl = cbList, 
          cbGroup = cbGroup)  # item 70 is selected


## 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)

 # Current ability estimate is 0
 # Selecting the next item, current response pattern is 1 and item 70 was administered 
 # first

 ## MFI method
 nextItem(m.GRM, model = "GRM", theta = 0, criterion = "MFI", out = 70)

 ## Progressive method
 nextItem(m.GRM, model = "GRM", theta = 0, criterion = "progressive", out = 70)

 ## KL method
 nextItem(m.GRM, model = "GRM", theta = 0, criterion = "KL", out = 70, x = 1)

 ## MFI with content balancing
 cbList <- list(names = c("Audio1","Audio2","Written1","Written2", "Written3"), 
        props = c(0.1,0.2,0.2,0.2,0.3))
 m.GRM<-genPolyMatrix(100, 4, model = "GRM", cbControl = cbList)
 bank<-breakBank(m.GRM)
 nextItem(bank$itemPar, model = "GRM", theta = 0, criterion = "MFI", out = 70,
  cbControl = cbList, cbGroup = bank$cbGroup)


 # 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)

 # Current ability estimate is 0
 # Selecting the next item, current response pattern is 1 and item 15 was administered 
 # first

 ## MFI method
 nextItem(m.PCM, model = "PCM", theta = 0, criterion = "MFI", out = 15)

 ## Progressive method
 nextItem(m.PCM, model = "PCM", theta = 0, criterion = "progressive", out = 15)

 ## KL method
 nextItem(m.PCM, model = "PCM", theta = 0, criterion = "KL", out = 15, x = 1)

 ## MFI with content balancing
 cbList <- list(names = c("Audio1", "Audio2", "Written1", "Written2", "Written3"), 
        props = c(0.1, 0.2, 0.2, 0.2, 0.3))
 m.PCM<-genPolyMatrix(100, 4, model = "PCM", cbControl = cbList)
 bank<-breakBank(m.PCM)
 nextItem(bank$itemPar, model = "PCM", theta = 0, criterion = "MFI", out = 15, 
          cbControl = cbList, cbGroup = bank$cbGroup)

Run the code above in your browser using DataLab