View source: R/sequential.items.R
sequential.items | R Documentation |
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
.
sequential.items(data)
data |
A data frame with item responses |
Assume that item j possesses K ≥q 3 categories. We label these categories as k=0,1,…,K-1. The original item responses X_{nj} for person n at item j is then transformed into K-1 pseudo items Y_{j1}, …, Y_{j,K-1}.
The first pseudo item response Y_{nj1} is defined as 1 iff
X_{nj} ≥q 1. The second item responses Y_{nj2} is 1 iff
X_{nj} ≥q 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.).
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 |
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.
############################################################################# # 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.