sequential.items {CDM} | R Documentation |
Constructing a Dataset with Sequential Pseudo Items for Ordered Item Responses
Description
This function constructs dichotomous pseudo items from polytomous ordered items (Tutz, 1997). Using this method, developed test models for dichotomous data can be applied for polytomous item responses after transforming them into dichotomous data. See Details for the construction.
Ma and de la Torre (2016) proposed a sequential GDINA model.
Interestingly, the proposed model can be fitted with the
gdina
function in this CDM package while item responses
has to be transformed with the sequential.items
function for
obtaining dichotomous pseudoitems. The Q-matrix for the sequential model of Ma and
de la Torre (2016) can be used in the GDINA model for the
dichotomous pseudoitems. This approach is implemented for automatic
use in gdina
.
Usage
sequential.items(data)
Arguments
data |
A data frame with item responses |
Details
Assume that item j
possesses K \geq 3
categories. We label these
categories as k=0,1,\ldots,K-1
. The original item responses X_{nj}
for person n
at item j
is then transformed into K-1
pseudo
items Y_{j1}, \ldots, Y_{j,K-1}
.
The first pseudo item response Y_{nj1}
is defined as 1 iff
X_{nj} \geq 1
. The second item responses Y_{nj2}
is 1 iff
X_{nj} \geq 2
, it is 0 iff X_{nj}=1
and it is missing
(NA
in the dataset) iff X_{nj}=0
. The construction proceeds
in the same manner for other categories (see Tutz, 1997). The pseudo items can be
recognized as 'hurdles' a participant has to master to get a score of k
for the original item.
The pseudo items are treated as conditionally independent which implies that IRT models or CDMs which assume local independence can be employed for estimation.
For deriving item response probabilities of the original items from response probabilities of the pseudo items see Tutz (1997, p. 141ff.).
Value
A list with following entries
dat.expand |
A data frame with dichotomous pseudo items |
iteminfo |
A data frame containing some item information |
maxK |
Vector with maximum number of categories per item |
References
Ma, W., & de la Torre, J. (2016). A sequential cognitive diagnosis model for polytomous responses. British Journal of Mathematical and Statistical Psychology, 69(3), 253-275.
Tutz, G. (1997). Sequential models for ordered responses. In W. van der Linden & R. K. Hambleton. Handbook of modern item response theory (pp. 139-152). New York: Springer.
Examples
#############################################################################
# EXAMPLE 1: Constructing sequential pseudo items for data.mg
#############################################################################
data(data.mg, package="CDM")
dat <- data.mg
items <- colnames(dat)[ which( substring( colnames(dat),1,1)=="I" ) ]
## [1] "I1" "I2" "I3" "I4" "I5" "I6" "I7" "I8" "I9" "I10" "I11"
data <- dat[,items]
# construct sequential dichotomous pseudo items
res <- CDM::sequential.items(data)
# item information table
res$iteminfo
## item itemindex category pseudoitem
## 1 I1 1 1 I1
## 2 I2 2 1 I2
## 3 I3 3 1 I3
## 4 I4 4 1 I4_Cat1
## 5 I4 4 2 I4_Cat2
## 6 I5 5 1 I5_Cat1
## 7 I5 5 2 I5_Cat2
## [...]
# extract dataset with pseudo items
dat.expand <- res$dat.expand
colnames(dat.expand)
## [1] "I1" "I2" "I3" "I4_Cat1" "I4_Cat2" "I5_Cat1"
## [7] "I5_Cat2" "I6_Cat1" "I6_Cat2" "I7_Cat1" "I7_Cat2" "I7_Cat3"
## [13] "I8" "I9" "I10" "I11_Cat1" "I11_Cat2" "I11_Cat3"
# compare original items and pseudoitems
#**** Item I1
stats::xtabs( ~ paste(data$I1) + paste(dat.expand$I1) )
## paste(dat.expand$I1)
## paste(data$I1) 0 1 NA
## 0 4339 0 0
## 1 0 33326 0
## NA 0 0 578
#**** Item I7
stats::xtabs( ~ paste(data$I7) + paste(dat.expand$I7_Cat1) )
## paste(dat.expand$I7_Cat1)
## paste(data$I7) 0 1 NA
## 0 3825 0 0
## 1 0 14241 0
## 2 0 14341 0
## 3 0 5169 0
## NA 0 0 667
stats::xtabs( ~ paste(data$I7) + paste(dat.expand$I7_Cat2) )
## paste(dat.expand$I7_Cat2)
## paste(data$I7) 0 1 NA
## 0 0 0 3825
## 1 14241 0 0
## 2 0 14341 0
## 3 0 5169 0
## NA 0 0 667
stats::xtabs( ~ paste(data$I7) + paste(dat.expand$I7_Cat3) )
## paste(dat.expand$I7_Cat3)
## paste(data$I7) 0 1 NA
## 0 0 0 3825
## 1 0 0 14241
## 2 14341 0 0
## 3 0 5169 0
## NA 0 0 667
## Not run:
#*** Model 1: Rasch model for sequentially created pseudo items
mod <- CDM::gdm( dat.expand, irtmodel="1PL", theta.k=seq(-5,5,len=21),
skillspace="normal", decrease.increments=TRUE)
## End(Not run)