lwrc {irtQ} | R Documentation |
Lord-Wingersky Recursion Formula
Description
This function computes the conditional distributions of number-correct (or observed) scores given either the probabilities of category responses for each item or a set of theta values, using the Lord and Wingersky recursion formula (1984).
Usage
lwrc(x = NULL, theta, prob = NULL, cats, D = 1)
Arguments
x |
A data frame containing item metadata (e.g., item parameters, number
of categories, IRT model types, etc.). See |
theta |
A vector of theta values at which the conditional distributions
of observed scores are computed. This argument is required only when item
metadata is provided via the |
prob |
A matrix containing the category response probabilities for each
item. Each row corresponds to an item, and each column represents a score
category. If items have different numbers of categories, empty cells should
be filled with zeros or |
cats |
A numeric vector specifying the number of score categories for
each item. For example, a dichotomous item has two categories. This
argument is required only when a probability matrix is provided via the
|
D |
A scaling constant used in IRT models to make the logistic function closely approximate the normal ogive function. A value of 1.7 is commonly used for this purpose. Default is 1. |
Details
The Lord and Wingersky recursive algorithm provides an efficient method for calculating the compound probabilities of all possible number-correct (i.e., observed) scores on a test, based on IRT models. This algorithm is particularly useful for obtaining the IRT model-based distribution of observed scores.
The conditional distributions of observed scores can be computed using
either the item metadata specified in x
or the category probability
matrix specified in prob
.
Value
When the prob
argument is provided, the function returns a vector
of probabilities for all possible observed scores on a test.
When the x
argument is specified, it returns a matrix of conditional
probabilities for each observed score across all specified theta values.
Author(s)
Hwanggyu Lim hglim83@gmail.com
References
Kolen, M. J. & Brennan, R. L. (2004) Test Equating, Scaling, and Linking (2nd ed.). New York: Springer.
Lord, F. & Wingersky, M. (1984). Comparison of IRT true score and equipercentile observed score equatings. Applied Psychological Measurement, 8(4), 453-461.
Examples
## Example 1: Using a matrix of category probabilities
## This example is from Kolen and Brennan (2004, p. 183)
# Create a matrix of probabilities for correct and incorrect responses to three items
probs <- matrix(c(.74, .73, .82, .26, .27, .18), nrow = 3, ncol = 2, byrow = FALSE)
# Create a vector specifying the number of score categories for each item
cats <- c(2, 2, 2)
# Compute the conditional distribution of observed scores
lwrc(prob = probs, cats = cats)
## Example 2: Using a matrix of category probabilities for a mixed-format test
# Category probabilities for a dichotomous item
p1 <- c(0.2, 0.8, 0, 0, 0)
# Category probabilities for another dichotomous item
p2 <- c(0.4, 0.6, NA, NA, NA)
# Category probabilities for a polytomous item with five categories
p3 <- c(0.1, 0.2, 0.2, 0.4, 0.1)
# Category probabilities for a polytomous item with three categories
p4 <- c(0.5, 0.3, 0.2, NA, NA)
# Combine the probability vectors into a matrix
p <- rbind(p1, p2, p3, p4)
# Create a vector specifying the number of score categories for each item
cats <- c(2, 2, 5, 3)
# Compute the conditional distribution of observed scores
lwrc(prob = p, cats = cats)
## Example 3: Using a data frame of item metadata for a mixed-format test
# Import the "-prm.txt" output file from flexMIRT
flex_prm <- system.file("extdata", "flexmirt_sample-prm.txt", package = "irtQ")
# Read item parameters and convert them to item metadata
x <- bring.flexmirt(file = flex_prm, "par")$Group1$full_df
# Compute the conditional distribution of observed scores for a range of theta values
lwrc(x = x, theta = seq(-4, 4, 0.2), D = 1)