#############################################################################
# EXAMPLE 1: DINA model data.ecpe
#############################################################################
data(data.ecpe)
# fit DINA model
mod1 <- din( data.ecpe$data[,-1] , q.matrix= data.ecpe$q.matrix )
summary(mod1)
# person fit appropriateness statistic
data <- mod1$data
probs <- mod1$pjk
skillclassprobs <- mod1$attribute.patt[,1]
res <- personfit.appropriateness( data , probs , skillclassprobs , maxiter=8)
# only few iterations
summary(res)
plot(res)
#############################################################################
# EXAMPLE 2: Person fit 2PL model
#############################################################################
library(sirt)
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( ncol(dat) , 2 , dim(probs0)[2] ) )
probs[,2,] <- probs0
probs[,1,] <- 1 - probs0
skillclassprobs <- mod1$trait.distr$pi.k
res <- personfit.appropriateness( data , probs , skillclassprobs )
summary(res)
plot(res)
Run the code above in your browser using DataLab