
This function does the scoring in the isotonic probabilistic model (Scheiblechner, 1995, 2003, 2007). Person parameters are ordinally scaled but the ISOP model also allows specific objective (ordinal) comparisons for persons (Scheiblechner, 1995).
isop.scoring(dat,score.itemcat=NULL)
A list with following entries:
A data frame with person parameters. The modified
percentile score mpsc
.
Item statistics and scoring parameters.
The item P-scores pscore
.
Frequencies for every item category
Scoring points for every item category
Empirical distribution function
Data frame with dichotomous or polytomous item responses
Optional data frame with scoring points for every item and every category (see Example 2).
This function extracts the scoring rule of the ISOP model
(if score.itemcat !=NULL
) and calculates the
modified percentile score for every person. The score
mpsc
in person
) is
defined by
The modified item P-score
Scheiblechner, H. (1995). Isotonic ordinal probabilistic models (ISOP). Psychometrika, 60, 281-304.
Scheiblechner, H. (2003). Nonparametric IRT: Scoring functions and ordinal parameter estimation of isotonic probabilistic models (ISOP). Technical Report, Philipps-Universitaet Marburg.
Scheiblechner, H. (2007). A unified nonparametric IRT model for d-dimensional psychological test data (d-ISOP). Psychometrika, 72, 43-67.
For fitting the ISOP and ADISOP model see
isop.dich
or fit.isop
.
#############################################################################
# EXAMPLE 1: Dataset Reading
#############################################################################
data( data.read )
dat <- data.read
# Scoring according to the ISOP model
msc <- sirt::isop.scoring( dat )
# plot student scores
boxplot( msc$person$mpsc ~ msc$person$score )
#############################################################################
# EXAMPLE 2: Dataset students from CDM package | polytomous items
#############################################################################
library("CDM")
data( data.Students, package="CDM")
dat <- stats::na.omit(data.Students[, -c(1:2) ])
# Scoring according to the ISOP model
msc <- sirt::isop.scoring( dat )
# plot student scores
boxplot( msc$person$mpsc ~ msc$person$score )
# scoring with known scoring rule for activity items
items <- paste0( "act", 1:5 )
score.itemcat <- msc$score.itemcat
score.itemcat <- score.itemcat[ items, ]
msc2 <- sirt::isop.scoring( dat[,items], score.itemcat=score.itemcat )
Run the code above in your browser using DataLab