Description Usage Arguments Details Value Note Author(s) References See Also Examples

Estimates item measures, person measures, rating category thresholds and their standard errors using the method of successive dichotomizations. Option provided for anchoring certain items and persons while estimating the rest. Option also provided for estimating infit and outfit statistics.

1 |

`data` |
a numeric matrix of ordinal rating scale data whose entries are integers with missing data set to NA. Rows are persons and columns are items. The ordinal rating scale is assumed to go from the smallest integer to the largest integer in |

`items` |
a numeric vector of anchored item measures. Item measures to be estimated are set to NA. Default is NULL (see Details). |

`persons` |
a numeric vector of anchored person measures. Person measures to be estimated are set to NA. Default is NULL (see Details). |

`misfit` |
logical for calculating infit and outfit statistics. Default is FALSE. |

`items`

and `persons`

are optional numeric vectors that specify item and person measures that are "anchored" and not estimated. The length of `items`

must equal the number of columns in `data`

and the length of `persons`

must equal the number of rows in `data`

. Only entries set to NA in `items`

and `persons`

are estimated. Default for both `items`

and `persons`

is NULL, which is equivalent to a vector of NA so that all items and persons are estimated.

A list whose elements are:

`item_measures` |
a vector of item measures for each item |

`person_measures` |
a vector of person measures for each person |

`thresholds` |
a vector of average rating category thresholds used by the persons when rating the items |

`item_std_errors` |
a vector of standard errors for the items |

`person_std_errors` |
a vector of standard errors for the persons |

`threshold_std_errors` |
a vector of standard errors for the thresholds |

`item_reliability` |
reliability of the item measures |

`person_reliability` |
reliability of the person measures |

`infit_items` |
if |

`outfit_items` |
if |

`infit_persons` |
if |

`outfit_persons` |
if |

The axis origin is set by convention at the mean item measure. All item measures and person measures that cannot be estimated will return as NA (e.g., if a person responds with only the highest rating category, or with only the lowest rating category, to all items, that person's person measure cannot be estimated).

The accuracy of `msd`

can be tested using the `simdata`

function (see Examples).

Chris Bradley (cbradley05@gmail.com)

Bradley, C. and Massof, R. W. (2018) Method of successive dichotomizations: An improved method for estimating measures of latent variables from rating scale data. *PLoS One*, **13(10)** doi:10.1371/journal.pone.0206106

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 | ```
# Simple example using a randomly generated ratings matrix
d <- as.numeric(sample(0:5, 200, replace = TRUE))
dm <- matrix(d, nrow = 20, ncol = 10)
m1 <- msd(dm, misfit = TRUE)
# Anchor first 5 item measures and first 10 person measures
im <- m1$item_measures
im[6:length(im)] <- NA
pm <- m1$person_measures
pm[11:length(pm)] <- NA
m2 <- msd(dm, items = im, persons = pm)
# To test the accuracy of msd using simdata, set the mean item measure to zero
# (axis origin in msd is the mean item measure) and the mean threshold to
# zero (any non-zero mean threshold is reflected in the person measures).
im <- runif(100, -2, 2)
im <- im - mean(im)
pm <- runif(100, -2, 2)
th <- sort(runif(5, -2, 2))
th <- th - mean(th)
d <- simdata(im, pm, th, missingProb = 0.15, minRating = 0)
m <- msd(d)
# Compare msd parameters to true values. Linear regression should
# yield a slope very close to 1 and an intercept very close to 0.
lm(m$item_measures ~ im)
lm(m$person_measures ~ pm)
lm(m$thresholds ~ th)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.