#############################################################################
# EXAMPLE 1: DINA model data.ecpe
#############################################################################
data(data.ecpe, package="CDM")
# fit DINA model
mod1 <- CDM::din( CDM::data.ecpe$data[,-1], q.matrix=CDM::data.ecpe$q.matrix )
summary(mod1)
# person fit appropriateness statistic
data <- mod1$data
probs <- mod1$pjk
skillclassprobs <- mod1$attribute.patt[,1]
res <- CDM::personfit.appropriateness( data, probs, skillclassprobs, maxiter=8)
# only few iterations
summary(res)
plot(res)
if (FALSE) {
#############################################################################
# EXAMPLE 2: Person fit 2PL model
#############################################################################
data(data.read, package="sirt")
dat <- data.read
I <- ncol(dat)
# fit 2PL model
mod1 <- sirt::rasch.mml2( dat, est.a=1:I)
# person fit statistic
data <- mod1$dat
probs0 <- t(mod1$pjk)
probs <- array( 0, dim=c( I, 2, dim(probs0)[2] ) )
probs[,2,] <- probs0
probs[,1,] <- 1 - probs0
skillclassprobs <- mod1$trait.distr$pi.k
res <- CDM::personfit.appropriateness( data, probs, skillclassprobs )
summary(res)
plot(res)
}
Run the code above in your browser using DataLab