Fit Unidimensional ISOP and ADISOP Model to Dichotomous and Polytomous Item Responses
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.
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,...)
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 |
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=√{ \frac{1}{I} ∑_{p,i} w_{pi} ≤ft( F(p, i) - F^\ast(p,i ) \right )^2 }
with frequency weights w_{pi} and ∑_p w_{pi}=1 for every item i. The additive isotonic model (ADISOP; Scheiblechner, 1999) assumes the existence of person parameters θ_p and item parameters δ_i such that
P( X_{pi}=1 | p )=g( θ_p + δ_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 ≤ 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 ≤ k ; p )=F^{\ast \ast} ( k ; p, i )=F^{ \ast \ast } ( k, θ_p + δ_i )
which is antitonic in k and in θ_p + δ_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 ≤ k ; p )=g( θ_p + δ_i + γ_k )
where g denotes the logistic function.
Estimated parameters are in the value fit.grm
:
person parameters θ_p (person.sc
),
item parameters δ_i (item.sc
) and
category parameters γ_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).
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 |
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.
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/")
############################################################################# # 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.