personfit.appropriateness {CDM} | R Documentation |
Appropriateness Statistic for Person Fit Assessment
Description
This function computes the person fit appropriateness statistics
(Levine & Drasgow, 1988) as proposed for cognitive diagnostic
models by Liu, Douglas and Henson (2009). The appropriateness statistic
assesses spuriously high scorers (attr.type=1
) and
spuriously low scorers (attr.type=0
).
Usage
personfit.appropriateness(data, probs, skillclassprobs, h=0.001, eps=1e-10,
maxiter=30, conv=1e-05, max.increment=0.1, progress=TRUE)
## S3 method for class 'personfit.appropriateness'
summary(object, digits=3, ...)
## S3 method for class 'personfit.appropriateness'
plot(x, cexpch=.65, ...)
Arguments
data |
Data frame of dichotomous item responses |
probs |
Probabilities evaluated at skill space (abilities |
skillclassprobs |
Probabilities of skill classes |
h |
Numerical differentiation parameter |
eps |
Constant which is added to probabilities avoiding zero probability |
maxiter |
Maximum number of iterations |
conv |
Convergence criterion |
max.increment |
Maximum increment in iteration |
progress |
Optional logical indicating whether iteration progress should be displayed. |
object |
Object of class |
digits |
Number of digits for rounding |
x |
Object of class |
cexpch |
Point size in plot |
... |
Further arguments to be passed |
Value
List with following entries
summary |
Summaries of person fit statistic |
personfit.appr.type1 |
Statistic for spuriously high scorers
( |
personfit.appr.type0 |
Statistic for spuriously low scorers
( |
References
Levine, M. V., & Drasgow, F. (1988). Optimal appropriateness measurement. Psychometrika, 53, 161-176.
Liu, Y., Douglas, J. A., & Henson, R. A. (2009). Testing person fit in cognitive diagnosis. Applied Psychological Measurement, 33(8), 579-598.
Examples
#############################################################################
# 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)
## Not run:
#############################################################################
# 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)
## End(Not run)