Appropriateness Statistic for Person Fit Assessment
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
).
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, ...)
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 |
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
( |
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.
############################################################################# # 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.