mcm-methods: Multiple-Choice Model Response Probabilities In plink: IRT Separate Calibration Linking Methods

Description

This function computes the probability of responding in a specific category for one or more items for a given set of theta values using the multiple-choice model or multidimensional multiple-choice model.

Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```mcm(x, cat, theta, dimensions = 1, items, information = FALSE, angle, ...) ## S4 method for signature 'matrix', 'numeric' mcm(x, cat, theta, dimensions, items, information, angle, ...) ## S4 method for signature 'data.frame', 'numeric' mcm(x, cat, theta, dimensions, items, information, angle, ...) ## S4 method for signature 'list', 'numeric' mcm(x, cat, theta, dimensions, items, information, angle, ...) ## S4 method for signature 'irt.pars', 'ANY' mcm(x, cat, theta, dimensions, items, information, angle, ...) ## S4 method for signature 'sep.pars', 'ANY' mcm(x, cat, theta, dimensions, items, information, angle, ...) ```

Arguments

 `x` an `R` object containing item parameters `cat` vector identifying the number of response categories plus one for each item (the additional category is for 'do not know') `theta` vector, matrix, or list of theta values for which probabilities will be computed. If `theta` is not specified, an equal interval range of values from -4 to 4 is used with an increment of 0.5. See details below for more information. `dimensions` number of modeled dimensions `items` numeric vector identifying the items for which probabilities should be computed `information` logical value. If `TRUE` compute item information. In the multidimensional case, information will be computed in the directions specified by `angle` or default angles of 0 - 90 in increments of 10 degrees. `angle` vector or matrix of angles between the dimension 1 axis and the corresponding axes for each of the other dimensions for which information will be computed. When there are more than two dimensions and `angle` is a vector, the same set of angles will be used relative to each of the corresponding axes. `...` further arguments passed to or from other methods

Details

`theta` can be specified as a vector, matrix, or list. For the unidimensional case, `theta` should be a vector. If a matrix or list of values is supplied, they will be converted to a single vector of theta values. For the multidimensional case, if a vector of values is supplied it will be assumed that this same set of values should be used for each dimension. Probabilities will be computed for each combination of theta values. Similarly, if a list is supplied, probabilities will be computed for each combination of theta values. In instances where probabilities are desired for specific combinations of theta values, a j x m matrix should be specified for j ability points and m dimensions where the columns are ordered from dimension 1 to m.

Value

Returns an object of class `irt.prob`

Methods

x = "matrix", cat = "numeric"

This method allows one to specify an n x h matrix for n items and h equal to [m x 2k + (k-1)] where m is the number of modeled dimensions and k is equal to the maximum number of response categories (including the 'do not know' category) across items. The first (m x k) columns are for category slope parameters, the next block of (m x k) columns are for category difficulty parameters, and the remaining columns are for the lower asymptote (guessing) parameters. For any items with fewer categories than the maximum, the remaining cells in each block of (m x k) columns or the last k columns should be `NA`.

Unidimensional Specification:

Say we have one item with four actual response categories and one item with five response categories. There will be 17 columns. The first six columns are for the category slope parameters. The first column should contain the parameters for the 'do not know' category. Column six for the four category item should be `NA`. The next six columns (7-12) are for category difficulty parameters. The first column of this subset of columns (column 7) should contain the category difficulties for the 'do not know' category. Similar to the block of columns containing the slopes, the last column in this subset of columns (column 12) for the four category item should be `NA`. The remaining five columns are for the lower asymptote (guessing) parameters. The last column for the four category item would be `NA`.

Multidimensional Specification:

In the multidimensional case, the columns for the slope and difficulty parameters should be grouped first by dimension and then by category. Using the same example for the two items with two dimensions there will be 29 columns. The first five columns for the four category item would include the slope parameters associated with the first dimension for the 'do not know' category and each of the four actual categories respectively. Columns 11-12 would be `NA`. Columns 13-17 would include the category difficulties associated with the first dimension (again the parameters for the 'do not know' category should be in the first column of this block of columns) and columns 23-24 would be `NA`. The remaining five columns are for the lower asymptote (guessing) parameters. The last column for the four category item would be `NA`.

x = "data.frame", cat = "numeric"

See the method for x = "matrix"

x = "list", cat = "numeric"

This method is for a list with three elements. The first element is an n x (m x k) matrix of category slope values for n items, m dimensions, and k equal to the maximum number of response categories across items (including the 'do not know' category). The second list element is an n x (m x k) matrix of category difficulty parameters and the last element is an n x (k-1) matrix of lower asymptote (guessing) parameters. For any list element, for items with fewer categories than the maximum, the remaining cells in the rows should be `NA` (see the examples for method x = "matrix" for specification details).

x = "irt.pars", cat = "ANY"

This method can be used to compute probabilities for the mcm items in an object of class `"irt.pars"`. If `x` contains dichotomous items or items associated with another polytomous model, a warning will be displayed stating that probabilities will be computed for the mcm items only. If `x` contains parameters for multiple groups, a list of `"irt.prob"` objects will be returned. The argument `dimensions` does not need to be included for this method.

x = "sep.pars", cat = "ANY"

This method can be used to compute probabilities for the mcm items in an object of class `sep.pars`. If `x` contains dichotomous items or items associated with another polytomous model, a warning will be displayed stating that probabilities will be computed for the mcm items only. The argument `dimensions` does not need to be included for this method.

Note

No multidimensional extension of the multiple-choice model has officially been presented in the literature; however, this model is consistent with how the 3PL and nominal response model were extended to the multidimensional context. Additionally, item information is not currently available for the multiple-choice model even though the arguments are included in the function. Information will be available in a later release.

Author(s)

Jonathan P. Weeks weeksjp@gmail.com

References

Bolt, D. M. & Johnson, T. J. (in press) Applications of a MIRT model to self-report measures: Addressing score bias and DIF due to individual differences in response style. Applied Psychological Measurement.

Thissen, D., & Steinberg, L. (1984). A response model for multiple choice items. Psychometrika, 49(4), 501-519.

Thissen, D., & Steinberg, L. (1996) A response model for multiple choice items. In W.J. van der Linden & Hambleton, R. K. (Eds.) Handbook of Modern Item Response Theory. New York: Springer-Verlag

Weeks, J. P. (2010) plink: An R package for linking mixed-format tests using IRT-based methods. Journal of Statistical Software, 35(12), 1–33. URL http://www.jstatsoft.org/v35/i12/

`mixed:` compute probabilities for mixed-format items
`plot:` plot item characteristic/category curves
`irt.prob`, `irt.pars`, `sep.pars:` classes
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50``` ```###### Unidimensional Examples ###### ## Item parameters from Thissen & Steinberg (1984, p. 510) ## Items R,S,T,U for the whole test a <- matrix(c(-1.7, -1, 1.1, .3, 1.9, -2.1, -.6, 1.2, 2.3, -.8, -1.3, -.9, -.2, 1.9, .5, -1.9, -.5, 0, -.6, 1.9),4,5,byrow=TRUE) c <- matrix(c(.3, -2.3, 2.4, -2.5, 2.1, 2.1, .05, -3, -.6, 1, -.9, -2.5, -.1, 1.8, 1.6, -.1, -2, .5, .8, .8),4,5,byrow=TRUE) d <- matrix(c(.25, .25, .25, .25, .2, .2, .4, .2, .2, .2, .4, .2, .25, .25, .25, .25), 4,4,byrow=TRUE) pars <- cbind(a,c,d) x <- mcm(pars, rep(5,4)) plot(x,item.names=paste("Item",c("R","S","T","U")), auto.key=list(space="right")) ## Item parameters from Thissen & Steinberg (1984, p. 511) ## Items W,X,Y,Z for the pars <- vector("list",3) pars[[1]] <- matrix(c(-2.3, -.2, 2, .9, -.3, -.8, .6, -.5, 1.1, -.4, -.5, -.2, 2, -1.2, 0, -1.5, -.7, -.2, .1, 2.3),4,5,byrow=TRUE) pars[[2]] <- matrix(c(.5, .7, -.5, -1.9, 1.1, 1.6, -2.8, 1.5, 0, -.3, -.3, .7, -1, .7, 0, .4, .4, -.5, .5, -.8),4,5,byrow=TRUE) pars[[3]] <- matrix(c(.2, .4, .2, .2, .2, .2, .4, .2, .2, .4, .2, .2, .2, .2, .2, .4), 4,4,byrow=TRUE) x <- mcm(pars, rep(5,4)) plot(x,item.names=paste("Item",c("W","X","Y","Z")), auto.key=list(space="right")) ###### Multidimensional Example ###### ## Discrimination and category parameters from Bolt & Johnson (in press) pars <- matrix(c(-1.28, -1.029, -0.537, 0.015, 0.519, 0.969, 1.343, 1.473, -0.585, -0.561, -0.445, -0.741, -0.584, 1.444, 0.29, 0.01, 0.04, 0.34, 0, -0.04, -0.63, 0.01, 0.09, 0.09, 0.28, 0.22, 0.31),1,27) x <- mcm(pars, cat=7, dimensions=2) # Plot separated surfaces plot(x,separate=TRUE,drape=TRUE) ```