nextItem(itemBank, theta, 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, cbControl=NULL)
itBank
as output of the function createItemBank
.NULL
(default).out
(and NULL
by default).
Ignored if method
is either "MFI"
or "Owen"
. See Details."MFI"
(default), "Urry"
"MLWI"
, "MPWI"
, "MEI"
, "MEPV"
and random
. See Details<"BM"
(default), "ML"
and "WL"
. See Details."norm"
(default) for the normal distribution, and "unif"
for
the uniform distribution. Ignored if type
is not "MPWI"
.priorDist
is "norm"
, then priorPar
contains the
mean and the standard deviation of the normal distribution. If priorDist
D=1
(for logistic metric); D=1.702
yields approximately the normal metric (Haley, 1952).c(-4,4)
).
Ignored if method=="EAP"
.c(-4,4,33)
). Ignored if method
is eithe"observed"
(default) for observed
information function, and "Fisher"
for Fisher information function. Ignored if criterion
NULL
. See Details."random"
criterion) for the selected
item and the current ability estimate.criterion
argument.randomesque
argument.cbControl
.cbControl
.cbControl$props
.cbControl$props
itemBank
. Urry's procedure consists
in selecting as next the item whose difficulty level is closest to the current ability estimate. Under the 1PL model, both Urry and MFI
methods are equivalent. The MLWI and MPWI criteria select the next item as the one with maximal information, weighted either by the
likelihood function or the posterior distribution. See the function MWI
for further details. Finally, the MEI criterion
selects the item with maximum expected information, computed with the MEI
function.
The method for next item selection is specified by the criterion
argument. Possible values are "MFI"
for maximum Fisher information
criterion, "Urry"
for Owen's method, "MLWI"
for maximum likelihood weighted information criterion, "MPWI"
for the
maximum posterior weighted information criterion, "MEI"
for the maximum expected information criterion, "MEPV"
for minimum expected
posterior variance, and "random"
for random selection. Other values return an error message.
For MFI, MEI and Urry criteria, the provisional ability estimate must be supplied throught the theta
argument (by default, it is equal to zero).
For MLWI and MPWI criteria, this argument is ignored.
The available items are those that are not specified in the out
argument. By default, out
is NULL
, which means that all
items are available.
For MEI, MEPV, MLWI and MPWI methods, the provisional response pattern must be provided through the x
argument. It must be of 0/1 entries and of
the same length as the out
argument. It is ignored with MFI and Urry criteria. Moreover, the range of integration (or posterior variance
computation) is specified by the triplet parInt
, where the first, second, and third value correspond to the arguments lower
, upper
and nqp
of the MWI
function, respectively.
The method
, priorDist
, priorPar
, D
, range
and intPar
arguments fix the ability estimator. See the
thetaEst
function for further details.
Finally, for MEI criterion, the type of information function must be supplied through the infoType
argument. It is equal to
"observed"
by default, which refers to the observed information function, and the other possible value is "Fisher"
for Fisher information function. See the MEI
funtion for further details. This argumpent is ignored if criterion
is not "MEI"
.
Item exposure can be controlled by using the so-called randomesque approach (Kingsbury an Zara, 1989), which consists in selecting more than one item
as the best items to be administered (according to the specified criterion
). The final item that is administered is randomly chosen among this set of
optimal items. The argument randomesque
controls for the number of optimal items to be selected. The default value is 1, which corresponds to the
usual framework of selecting the optimal item for next administration. Note that, for compatibility issues, if the number of remaining items is smaller than
randomesque
, the latter is replaced by this number of remaining items.
Control for content balancing is also possible, given two conditions: (a) the item bank set by itemBank
holds as element $cbGroup
the names of the
subgroups of items for content balancing, and (b) the argument cbControl
is a correctly specified list. The correct format for cbControl
is a list
with two elements. The first one is called names
and holds the names of the subgroups of items (in the order that is prespecified by the user). The second
element is called props
and contains the (theoretical) proportions of items to be administered from eazch subgroup for content balancing. These proportions
must be strictly positive but may not sum to one; in this case they are internally normalized to sum to one. Note that if cbControl
is misspecified, then
the test.cbList
will return a warning message and the nextItem
function will stop.
Under content balancing, the selection of the next item is done in several steps.
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).createItemBank
, MWI
, MEI
, thetaEst
, test.cbList
, randomCAT
# Loading the 'tcals' parameters
data(tcals)
# Item bank creation with 'tcals' item parameters
bank <- createItemBank(tcals)
## MFI criterion
# Selecting the next item, current ability estimate is 0
nextItem(bank, 0) # item 63 is selected
# Selecting the next item, current ability estimate is 0
# and item 63 is removed
nextItem(bank, 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, 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, 0, randomesque = 3)
## Urry's method
# Selecting the next item, current ability estimate is 0
nextItem(bank, 0, criterion="Urry") # item 24 is selected
# Selecting the next item, current ability estimate is 0
# and item 24 is removed
nextItem(bank, 0, out=24, criterion="Urry")
## 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
nextItem(bank, x=0, out=63, criterion="MEI")
# With Fisher information
nextItem(bank, x=0, out=63, criterion="MEI", infoType="Fisher")
## MEPV method
# Selecting the next item, current response pattern is 0
# and item 63 was administered first
nextItem(bank, x=0, out=63, criterion="MEPV")
## 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
# Item bank creation for content balancing
bank2 <- createItemBank(tcals, cb=TRUE)
# 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(bank2, 0, out=c(12,33,46,63), cbControl=cbList)
# item 70 is selected
Run the code above in your browser using DataLab