IRT.informationCurves.Rd
An S3 method which computes item and test information curves, see Muraki (1993).
IRT.informationCurves(object, ...)
# S3 method for tam.mml
IRT.informationCurves( object, h=.0001, iIndex=NULL,
theta=NULL, ... )
# S3 method for tam.mml.2pl
IRT.informationCurves( object, h=.0001, iIndex=NULL,
theta=NULL, ... )
# S3 method for tam.mml.mfr
IRT.informationCurves( object, h=.0001, iIndex=NULL,
theta=NULL, ... )
# S3 method for tam.mml.3pl
IRT.informationCurves( object, h=.0001, iIndex=NULL,
theta=NULL, ... )
# S3 method for IRT.informationCurves
plot(x, curve_type="test", ...)
Object of class tam.mml
, tam.mml.2pl
, tam.mml.mfr
or tam.mml.3pl
.
Further arguments to be passed
Numerical differentiation parameter
Indices of items for which test information should be computed. The default is to use all items.
Optional vector of \(\theta\) for which information curves should be computed.
Type of information to be plotted. It can be "test"
for the test information curve and "se"
for the
standard error curve.
Object of class tam.mml
, tam.mml.2pl
, tam.mml.mfr
or tam.mml.3pl
.
List with following entries
Standard error curves
Test information curve
Item information curves
Item-category information curves
Used \(\theta\) grid
Muraki, E. (1993). Information functions of the generalized partial credit model. Applied Psychological Measurement, 17(4), 351-363. doi:10.1177/014662169301700403
if (FALSE) {
#############################################################################
# EXAMPLE 1: Dichotomous data | data.read
#############################################################################
data(data.read, package="sirt")
dat <- data.read
# fit 2PL model
mod1 <- TAM::tam.mml.2pl( dat )
summary(mod1)
# compute information curves at grid seq(-5,5,length=100)
imod1 <- TAM::IRT.informationCurves( mod1, theta=seq(-5,5,len=100) )
str(imod1)
# plot test information
plot( imod1 )
# plot standard error curve
plot( imod1, curve_type="se", xlim=c(-3,2) )
# cutomized plot
plot( imod1, curve_type="se", xlim=c(-3,2), ylim=c(0,2), lwd=2, lty=3)
#############################################################################
# EXAMPLE 2: Mixed dichotomous and polytomous data
#############################################################################
data(data.timssAusTwn.scored, package="TAM")
dat <- data.timssAusTwn.scored
# select item response data
items <- grep( "M0", colnames(dat), value=TRUE )
resp <- dat[, items ]
#*** Model 1: Partial credit model
mod1 <- TAM::tam.mml( resp )
summary(mod1)
# information curves
imod1 <- TAM::IRT.informationCurves( mod1, theta=seq(-3,3,len=20) )
#*** Model 2: Generalized partial credit model
mod2 <- TAM::tam.mml.2pl( resp, irtmodel="GPCM")
summary(mod2)
imod2 <- TAM::IRT.informationCurves( mod2 )
#*** Model 3: Mixed 3PL and generalized partial credit model
psych::describe(resp)
maxK <- apply( resp, 2, max, na.rm=TRUE )
I <- ncol(resp)
# specify guessing parameters, including a prior distribution
est.guess <- 1:I
est.guess[ maxK > 1 ] <- 0
guess <- .2*(est.guess >0)
guess.prior <- matrix( 0, nrow=I, ncol=2 )
guess.prior[ est.guess > 0, 1] <- 5
guess.prior[ est.guess > 0, 2] <- 17
# fit model
mod3 <- TAM::tam.mml.3pl( resp, gammaslope.des="2PL", est.guess=est.guess, guess=guess,
guess.prior=guess.prior,
control=list( maxiter=100, Msteps=10, fac.oldxsi=0.1,
nodes=seq(-8,8,len=41) ), est.variance=FALSE )
summary(mod3)
# information curves
imod3 <- TAM::IRT.informationCurves( mod3 )
imod3
#*** estimate model in mirt package
library(mirt)
itemtype <- rep("gpcm", I)
itemtype[ maxK==1] <- "3PL"
mod3b <- mirt::mirt(resp, 1, itemtype=itemtype, verbose=TRUE )
print(mod3b)
}