Fit Unidimensional ISOP and ADISOP Model to Dichotomous and Polytomous Item Responses
isop.Rd
Fit the unidimensional isotonic probabilistic model (ISOP;
Scheiblechner, 1995, 2007) and the additive istotonic
probabilistic model (ADISOP; Scheiblechner, 1999).
The isop.dich
function can be used for dichotomous
data while the isop.poly
function can be applied
to polytomous data. Note that for applying the ISOP model for
polytomous data it is necessary that all items do have the
same number of categories.
Arguments
- dat
Data frame with dichotomous or polytomous item responses
- score.breaks
Vector with breaks to define score groups. For dichotomous data, the person score grouping is applied for the mean person score, for polytomous data it is applied to the modified percentile score.
- merge.extreme
Merge extreme groups with zero and maximum score with succeeding score categories? The default is
TRUE
.- conv
Convergence criterion
- maxit
Maximum number of iterations
- epsilon
Additive constant to handle cell frequencies of 0 or 1 in
fit.adisop
- progress
Display progress?
- object
Object of class
isop
(generated byisop.dich
orisop.poly
)- x
Object of class
isop
(generated byisop.dich
orisop.poly
)- ask
Ask for a new plot?
- ...
Further arguments to be passed
Details
The ISOP model for dichotomous data was firstly proposed
by Irtel and Schmalhofer (1982). Consider person groups
\(p\) (ordered from low to high scores)
and items \(i\) (ordered from difficult to easy items).
Here, \(F(p,i)\) denotes
the proportion correct for item \(i\) in score group
\(p\), while \(n_{pi}\) denotes the number of persons
in group \(p\) and on item \(i\). The isotonic
probabilistic model (Scheiblechner, 1995) monotonically
smooths this distribution function \(F\) such that
$$ P( X_{pi}=1 | p, i )=F^\ast( p, i ) $$
where the two-dimensional distribution function
\(F^\ast\) is isotonic in \(p\) and \(i\). Model fit is
assessed by the square root of weighted squares of deviations
$$Fit=\sqrt{ \frac{1}{I} \sum_{p,i} w_{pi} \left( F(p, i) -
F^\ast(p,i ) \right )^2 }$$
with frequency weights \(w_{pi}\) and
\(\sum_p w_{pi}=1\) for every item \(i\).
The additive isotonic model (ADISOP; Scheiblechner, 1999)
assumes the existence of person parameters \(\theta_p\)
and item parameters \(\delta_i\) such that
$$ P( X_{pi}=1 | p )=g( \theta_p + \delta_i )$$
and \(g\) is a nonparametrically estimated isotonic
function. The functions isop.dich
and isop.poly
uses \(F^\ast\)
from the ISOP models and estimates person and item parameters of the
ADISOP model. For comparison, isop.dich
also fits a model with
the logistic function \(g\) which results in the Rasch
model.
For polytomous data, the starting point is the empirical distribution function $$ P( X_i \le k | p )=F( k ; p, i ) $$ which is increasing in the argument \(k\) (the item categories). The ISOP model is defined to be antitonic in \(p\) and \(i\) while items are ordered with respect to item P-scores and persons are ordered according to modified percentile scores (Scheiblechner, 2007). The estimated ISOP model results in a distribution function \(F^\ast\). Using this function, the additive isotonic probabilistic model (ADISOP) aims at estimating a distribution function $$P( X_i \le k ; p )=F^{\ast \ast} ( k ; p, i )=F^{ \ast \ast } ( k, \theta_p + \delta_i ) $$ which is antitonic in \(k\) and in \(\theta_p + \delta_i\). Due to this additive relation, the ADISOP scale values are claimed to be measured at interval scale level (Scheiblechner, 1999).
The ADISOP model is compared to the graded response model which is
defined by the response equation
$$P( X_i \le k ; p )=g( \theta_p + \delta_i + \gamma_k ) $$
where \(g\) denotes the logistic function.
Estimated parameters are in the value fit.grm
:
person parameters \(\theta_p\) (person.sc
),
item parameters \(\delta_i\) (item.sc
) and
category parameters \(\gamma_k\) (cat.sc
).
The calculation of person and item scores is explained
in isop.scoring
.
For an application of the ISOP and ADISOP model see Scheiblechner and Lutz (2009).
Value
A list with following entries:
- freq.correct
Used frequency table (distribution function) for dichotomous and polytomous data
- wgt
Used weights (frequencies)
- prob.saturated
Frequencies of the saturated model
- prob.isop
Fitted frequencies of the ISOP model
- prob.adisop
Fitted frequencies of the ADISOP model
- prob.logistic
Fitted frequencies of the logistic model (only for
isop.dich
)- prob.grm
Fitted frequencies of the graded response model (only for
isop.poly
)- ll
List with log-likelihood values
- fit
Vector of fit statistics
- person
Data frame of person parameters
- item
Data frame of item parameters
- p.itemcat
Frequencies for every item category
- score.itemcat
Scoring points for every item category
- fit.isop
Values of fitting the ISOP model (see
fit.isop
)- fit.isop
Values of fitting the ADISOP model (see
fit.adisop
)- fit.logistic
Values of fitting the logistic model (only for
isop.dich
)- fit.grm
Values of fitting the graded response model (only for
isop.poly
)- ...
Further values
References
Irtel, H., & Schmalhofer, F. (1982). Psychodiagnostik auf Ordinalskalenniveau: Messtheoretische Grundlagen, Modelltest und Parameterschaetzung. Archiv fuer Psychologie, 134, 197-218.
Scheiblechner, H. (1995). Isotonic ordinal probabilistic models (ISOP). Psychometrika, 60, 281-304.
Scheiblechner, H. (1999). Additive conjoint isotonic probabilistic models (ADISOP). Psychometrika, 64, 295-316.
Scheiblechner, H. (2007). A unified nonparametric IRT model for d-dimensional psychological test data (d-ISOP). Psychometrika, 72, 43-67.
Scheiblechner, H., & Lutz, R. (2009). Die Konstruktion eines optimalen eindimensionalen Tests mittels nichtparametrischer Testtheorie (NIRT) am Beispiel des MR SOC. Diagnostica, 55, 41-54.
See also
This function uses isop.scoring
,
fit.isop
and fit.adisop
.
Tests of the W1 axiom of the ISOP model (Scheiblechner, 1995) can be performed with
isop.test
.
See also the ISOP package at Rforge: http://www.rforge.net/ISOP/.
Install this package using
install.packages("ISOP",repos="http://www.rforge.net/")
Examples
#############################################################################
# EXAMPLE 1: Dataset Reading (dichotomous items)
#############################################################################
data(data.read)
dat <- as.matrix( data.read)
I <- ncol(dat)
# Model 1: ISOP Model (11 score groups)
mod1 <- sirt::isop.dich( dat )
summary(mod1)
plot(mod1)
if (FALSE) {
# Model 2: ISOP Model (5 score groups)
score.breaks <- seq( -.005, 1.005, len=5+1 )
mod2 <- sirt::isop.dich( dat, score.breaks=score.breaks)
summary(mod2)
#############################################################################
# EXAMPLE 2: Dataset PISA mathematics (dichotomous items)
#############################################################################
data(data.pisaMath)
dat <- data.pisaMath$data
dat <- dat[, grep("M", colnames(dat) ) ]
# fit ISOP model
# Note that for this model many iterations are needed
# to reach convergence for ADISOP
mod1 <- sirt::isop.dich( dat, maxit=4000)
summary(mod1)
}
#############################################################################
# EXAMPLE 3: Dataset Students (polytomous items)
#############################################################################
# Dataset students: scale cultural activities
library(CDM)
data(data.Students, package="CDM")
dat <- stats::na.omit( data.Students[, paste0("act",1:4) ] )
# fit models
mod1 <- sirt::isop.poly( dat )
summary(mod1)
plot(mod1)