The function IRT.threshold computes Thurstonian thresholds for item response models. It is only based on fitted models for which the [CDM:IRT.irfprob]CDM::IRT.irfprob class does exist.

The function IRT.WrightMap creates a Wright map and works as a wrapper to the WrightMap::wrightMap function in the WrightMap package. Wright maps operate on objects of class IRT.threshold.

IRT.threshold(object, prob.lvl=.5, type="category")

# S3 method for IRT.threshold
print(x, ...)

IRT.WrightMap(object, ...)

# S3 method for IRT.threshold
IRT.WrightMap(object, label.items=NULL, ...)

Arguments

object

Object of fitted models for which [CDM:IRT.irfprob]CDM::IRT.irfprob exists.

prob.lvl

Requested probability level of thresholds.

type

Type of thresholds to be calculated. The default is category-wise calculation. If only one threshold per item should be calculated, then choose type="item". If an item possesses a maximum score of \(K_i\), then a threshold is defined as a value which produces an expected value of \(K_i /2\) (see Ali, Chang & Anderson, 2015).

x

Object of class IRT.threshold

label.items

Vector of item labels

...

Further arguments to be passed.

Value

Function IRT.threshold:

Matrix with Thurstonian thresholds

Function IRT.WrightMap:

A Wright map generated by the WrightMap package.

References

Ali, U. S., Chang, H.-H., & Anderson, C. J. (2015). Location indices for ordinal polytomous items based on item response theory (Research Report No. RR-15-20). Princeton, NJ: Educational Testing Service. doi:10.1002/ets2.12065

Author

The IRT.WrightMap function is based on the WrightMap::wrightMap function in the WrightMap package.

See also

See the WrightMap::wrightMap function in the WrightMap package.

Examples

if (FALSE) {
#############################################################################
# EXAMPLE 1: Fitted unidimensional model with gdm
#############################################################################

data(data.Students)
dat <- data.Students

# select part of the dataset
resp <- dat[, paste0("sc",1:4) ]
resp[ paste(resp[,1])==3,1] <-  2
psych::describe(resp)

# Model 1: Partial credit model in gdm
theta.k <- seq( -5, 5, len=21 )   # discretized ability
mod1 <- CDM::gdm( dat=resp, irtmodel="1PL", theta.k=theta.k, skillspace="normal",
              centered.latent=TRUE)

# compute thresholds
thresh1 <- TAM::IRT.threshold(mod1)
print(thresh1)
IRT.WrightMap(thresh1)

#############################################################################
# EXAMPLE 2: Fitted mutidimensional model with gdm
#############################################################################

data( data.fraction2 )
dat <- data.fraction2$data
Qmatrix <- data.fraction2$q.matrix3

# Model 1: 3-dimensional Rasch Model (normal distribution)
theta.k <- seq( -4, 4, len=11 )   # discretized ability
mod1 <- CDM::gdm( dat, irtmodel="1PL", theta.k=theta.k, Qmatrix=Qmatrix,
              centered.latent=TRUE, maxiter=10 )
summary(mod1)

# compute thresholds
thresh1 <- TAM::IRT.threshold(mod1)
print(thresh1)

#############################################################################
# EXAMPLE 3: Item-wise thresholds
#############################################################################

data(data.timssAusTwn.scored)
dat <- data.timssAusTwn.scored
dat <- dat[, grep("M03", colnames(dat) ) ]
summary(dat)

# fit partial credit model
mod <- TAM::tam.mml( dat )
# compute thresholds with tam.threshold function
t1mod <- TAM::tam.threshold( mod )
t1mod
# compute thresholds with IRT.threshold function
t2mod <- TAM::IRT.threshold( mod )
t2mod
# compute item-wise thresholds
t3mod <- TAM::IRT.threshold( mod, type="item")
t3mod
}