isop {sirt} | R Documentation |
Fit Unidimensional ISOP and ADISOP Model to Dichotomous and Polytomous Item Responses
Description
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.
Usage
isop.dich(dat, score.breaks=NULL, merge.extreme=TRUE,
conv=.0001, maxit=1000, epsilon=.025, progress=TRUE)
isop.poly( dat, score.breaks=seq(0,1,len=10 ),
conv=.0001, maxit=1000, epsilon=.025, progress=TRUE )
## S3 method for class 'isop'
summary(object,...)
## S3 method for class 'isop'
plot(x,ask=TRUE,...)
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
|
conv |
Convergence criterion |
maxit |
Maximum number of iterations |
epsilon |
Additive constant to handle cell frequencies
of 0 or 1 in |
progress |
Display progress? |
object |
Object of class |
x |
Object of class |
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 |
prob.grm |
Fitted frequencies of the graded response model
(only for |
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 |
Values of fitting the ADISOP model
(see |
fit.logistic |
Values of fitting the logistic model
(only for |
fit.grm |
Values of fitting the graded response model
(only for |
... |
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)
## Not run:
# 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)
## End(Not run)
#############################################################################
# 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)