recursive.raw {cacIRT}R Documentation

Recursive computation of conditional total score

Description

Recursively computes the probabilities of each possible total score conditional on ability.

Usage

recursive.raw(ip, theta, D = 1.7)
gen.rec.raw(Pij, theta.names = NULL)

Arguments

ip

Jx3 matrix of item parameters, columns are discrimination, difficulty, and guessing; in that order.

theta

Vector of abilities or points to condition on.

D

The scaling constant for the IRT parameters, defaults to 1.7, alternatively often set to 1.

Pij

Either:

(1) an NxJ matrix of probabilities of correct response, where each row corresponds to the respective element in theta and each column represents an item (as in the result of irf()$f)

or

(2) an NxMxJ array of probabilities. Each slice of the array represents an item. Within a slice, each row corresponds to the respective element in theta and each column represents a response category from 0, 1, ..., M. At a minimum, M=1, in which case the array is Nx2xJ and represents the dichotomous item case.

theta.names

Optional vector to use as row.names in the output matrix. Should correspond to the first dimension of Pij

Value

A matrix of theta points by possible total score 0,1, . . . ,J.

Note

As described in Huynh 1990.

If the test is mixed format (some dichotomous, some polytomous items), to use gen.rec.raw(), Pij must be of an appropriate size for the item with the most response categories. The response categories that do no appear in other items can be filled with zeros. Note also that the function assumes response categories are scored as 0,1,2,3,...,M

Author(s)

Quinn Lathrop

Examples

theta <- c(-1,0, 1)
params<-matrix(c(1,1,1,1,-2,1,0,1,0,0,0,0),4,3)

#using IRT model and item parameters
rec.mat <- recursive.raw(params, theta)

#using user supplied probability array
Pij.flat <- irf(params, theta)$f

#through matrix input
rec.mat2 <- gen.rec.raw(Pij.flat, theta)

#through array input (this can be generalized to polytomous tests)
Pij.array <- array(NA, dim = c(length(theta), 2, nrow(params)))

Pij.array[,1,] <- 1 - Pij.flat #P(X_j = 0 | theta_i)
Pij.array[,2,] <- Pij.flat     #P(X_j = 1 | theta_i)

rec.mat3 <- gen.rec.raw(Pij.array, theta)

#same results
max(c(rec.mat-rec.mat3, rec.mat2-rec.mat3))

[Package cacIRT version 1.4 Index]