50% off | Unlimited Data & AI Learning

Last chance! 50% off unlimited learning

Sale ends in


TAM (version 1.995-0)

IRT.truescore: Converts a $\theta$ Score into a True Score $\tau ( \theta)$

Description

Converts a $\theta$ score into an unweighted true score $\tau ( \theta) = \sum_i \sum_h h P_i ( \theta ) $. In addition, a weighted true score $\tau ( \theta) = \sum_i \sum_h q_{ih} P_i ( \theta ) $ can also be computed by specifying item-category weights $q_{ih}$ in the matrix Q.

Usage

IRT.truescore(object, iIndex = NULL, theta = NULL, Q = NULL)

Arguments

object
Object for which the CDM::IRT.irfprob S3 method is defined
iIndex
Optional vector with item indices
theta
Optional vector with $\theta$ values
Q
Optional weighting matrix

Value

Data frame containing $\theta$ values and corresponding true scores $\tau( \theta ) $.

See Also

See also sirt::truescore.irt for a conversion function for generalized partial credit models.

Examples

Run this code
#############################################################################
# EXAMPLE 1: True score conversion for a test with polytomous items
#############################################################################

data(data.Students, package="CDM")
dat <- data.Students[ , paste0("mj",1:4) ]

# fit partial credit model
mod1 <- tam.mml( dat ,control=list(maxiter=20) )
summary(mod1)

# true score conversion
tmod1 <- IRT.truescore( mod1 )
round( tmod1 , 4 )
# true score conversion with user-defined theta grid
tmod1b <- IRT.truescore( mod1 , theta=seq( -8,8, len=33 ) )
# plot results
plot( tmod1$theta , tmod1$truescore , type="l" , 
            xlab=expression(theta) , ylab=expression(tau( theta ) ) )
points( tmod1b$theta , tmod1b$truescore , pch=16 , col="brown" )

## Not run: 
# #############################################################################
# # EXAMPLE 2: True scores with different category weightings
# #############################################################################
# 
# data(data.timssAusTwn.scored)
# dat <- data.timssAusTwn.scored
# # extract item response data
# dat <- dat[ , grep("M03" , colnames(dat) ) ]
# # select items with do have maximum score of 2 (polytomous items)
# ind <- which( apply( dat ,  2, max , na.rm=TRUE ) == 2 )
# I <- ncol(dat)
# # define Q-matrix with scoring variant
# Q <- matrix( 1 , nrow=I , ncol=1 )
# Q[ ind , 1 ] <- .5    # score of 0.5 for polyomous items 
# 
# # estimate model
# mod1 <- tam.mml( dat , Q=Q , irtmodel="PCM2" , control=list( nodes=seq(-10,10,len=61) ) )
# summary(mod1)
# 
# # true score with scoring (0,1,2) which is the default of the function
# tmod1 <- IRT.truescore(mod1)
# # true score with user specified weighting matrix
# Q <- mod1$B[,,1]
# tmod2 <- IRT.truescore(mod1, Q=Q)
# ## End(Not run)

Run the code above in your browser using DataLab