MWMI {mstR} | R Documentation |
Maximum likelihood weighted module information (MLWMI) and maximum posterior weighted module information (MPWMI)
Description
This command returns the value of the likelihood (MLWMI) or the posterior (MPWMI) weighted module information for a given module and an item bank (both under dichotomous and polytomous IRT models).
Usage
MWMI(itemBank, modules, target.mod, it.given, x, model = NULL, lower = -4,
upper = 4, nqp = 33, type = "MLWMI", priorDist = "norm", priorPar = c(0, 1),
D = 1)
Arguments
itemBank |
numeric: a suitable matrix of item parameters. See Details. |
modules |
a binary matrix that specifies the item membership to th emodules. See Details. |
target.mod |
numeric: the module (referred to as its column number in the |
it.given |
numeric: a vector of item indicators for all previously administered items. |
x |
numeric: a vector of item responses, coded as 0 or 1 only (for dichotomous items) or from 0 to the number of response categories minus one (for polytomous items). The length of |
model |
either |
lower |
numeric: the lower bound for numerical integration (default is -4). |
upper |
numeric: the upper bound for numerical integration (default is 4). |
nqp |
numeric: the number of quadrature points (default is 33). |
type |
character: the type of information to be computed. Possible values are |
priorDist |
character: the prior ability distribution. Possible values are |
priorPar |
numeric: a vector of two components with the prior parameters. If |
D |
numeric: the metric constant. Default is |
Details
This function extends the MLWI and the MPWI methods to select the next item in CAT, to the MST framework. This command serves as a subroutine for the nextModule
function.
Dichotomous IRT models are considered whenever model
is set to NULL
(default value). In this case, itemBank
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 itemBank
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.
Under polytomous IRT models, let k be the number of administered items, and set x_1, ..., x_k
as the provisional response pattern (where each response x_l
takes values in \{0, 1, ..., g_l\}
). Set also
I(\theta)
as the information function of the module of interest (specified through target.mod
), made by the sum of all item informations functions from this module, and evaluated at \theta
. Set finally L(\theta | x_1, ..., x_k)
as the likelihood function evaluated at \theta
, given the provisional response pattern. Then, the LWMI for the module is given by
LWMI = \int I(\theta) L(\theta | x_1, ..., x_k) d\theta
and the PWMI by
PWMI = \int I(\theta) \pi(\theta) L(\theta | x_1, ..., x_k) d\theta
where \pi(\theta)
is the prior distribution of the ability level.
In case of dichotomous IRT models, all g_l
values reduce to 1, so that item responses x_l
equal either 0 or 1. But except from this difference, the previous definitions of LWI and PWI remain valid.
These integrals are approximated by the integrate.mstR
function. The range of integration is set up
by the arguments lower
, upper
and nqp
, giving respectively the lower bound, the upper bound and the number of quadrature points. The default range goes from -4 to 4 with length 33 (that is, by steps of 0.25).
The argument type
defines the type of information to be computed. The default value, "MLWMI"
, computes the MLWMI value, while the MPWMI value is obtained with type="MPWMI"
. For the latter, the priorDist
and priorPar
arguments fix the prior ability distribution.
The normal distribution is set up by priorDist="norm"
and then, priorPar
contains the mean and the standard deviation of the normal distribution. If priorDist
is "unif"
, then the uniform distribution is considered, and priorPar
fixes the lower and upper bounds of that
uniform distribution. By default, the standard normal prior distribution is assumed. This argument is ignored whenever method
is not "MPWMI"
.
The provisional response pattern and the related administered items are provided by the vectors x
and it.given
respectively. The target module (for which the maximum information is computed) is given by its column number in the modules
matrix, through the target.mod
argument.
Value
The required (likelihood or posterior) weighted module information for the selected module.
Author(s)
David Magis
Department of Psychology, University of Liege, Belgium
david.magis@uliege.be
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.
See Also
Ii
, nextModule
, integrate.mstR
, genPolyMatrix
Examples
## Dichotomous models ##
# Generation of an item bank under 2PL, made of 7 successive modules that target
# different average ability levels and with different lengths
# (the first generated item parameters hold two modules of 8 items each)
it <- rbind(genDichoMatrix(16, model = "2PL"),
genDichoMatrix(6, model = "2PL", bPrior = c("norm", -1, 1)),
genDichoMatrix(6, model = "2PL", bPrior = c("norm", 1, 1)),
genDichoMatrix(9, model = "2PL", bPrior = c("norm", -2, 1)),
genDichoMatrix(9, model = "2PL", bPrior = c("norm", 0, 1)),
genDichoMatrix(9, model = "2PL", bPrior = c("norm", 2, 1)))
it <- as.matrix(it)
# Creation of the 'module' matrix to list item membership in each module
modules <- matrix(0, 55, 7)
modules[1:8, 1] <- modules[9:16, 2] <- modules[17:22, 3] <- 1
modules[23:28, 4] <- modules[29:37, 5] <- modules[38:46, 6] <- 1
modules[47:55, 7] <- 1
# Creation of the response pattern for module 1 and true ability level 0
x <- genPattern(th = 0, it = it[1:8,], seed = 1)
# MLWMI for module 3
MWMI(it, modules, target.mod = 3, it.given = 1:8, x = x)
# MPWMI for module 3
MWMI(it, modules, target.mod = 3, it.given = 1:8, x = x, type = "MPWMI")
# MLWMI for for module 3, different integration range
MWMI(it, modules, target.mod = 3, it.given = 1:8, x = x, lower = -2, upper = 2, nqp = 20)
# MPWI for module 3, uniform prior distribution on the range [-2,2]
MWMI(it, modules, target.mod = 3, it.given = 1:8, x = x, type = "MPWMI",
priorDist = "unif", priorPar = c(-2, 2))
## Polytomous models ##
# Same structure as above but parameters are now generated from PCM with at most
# 4 categories
it.pol <- genPolyMatrix(55, model = "PCM", nrCat = 4)
it.pol <- as.matrix(it)
# Creation of the response pattern for module 1 and true ability level 0
x <- genPattern(th = 0, it = it.pol[1:8,], seed = 1)
# MLWMI for module 3
MWMI(it.pol, modules, target.mod = 3, it.given = 1:8, x = x, model = "PCM")
# MPWMI for module 3
MWMI(it.pol, modules, target.mod = 3, it.given = 1:8, x = x, type = "MPWMI",
model = "PCM")
# MLWMI for for module 3, different integration range
MWMI(it.pol, modules, target.mod = 3, it.given = 1:8, x = x, lower = -2,
upper = 2, nqp = 20, model = "PCM")
# MPWI for module 3, uniform prior distribution on the range [-2,2]
MWMI(it.pol, modules, target.mod = 3, it.given = 1:8, x = x, type = "MPWMI",
priorDist = "unif", priorPar = c(-2, 2), model = "PCM")