Learn R Programming

GDINA (version 2.0.8)

dif: Differential item functioning for cognitive diagnosis models

Description

This function is used to detect differential item functioning based on the models estimated in the GDINA function using the Wald test (Hou, de la Torre, & Nandakumar, 2014) and the likelihood ratio test (Ma, Terzi, Lee, & de la Torre, 2017). It can only detect DIF for two groups currently.

Usage

dif(dat, Q, group, method = "wald", p.adjust.methods = "bonferroni",
  LR.type = "free.all", LR.approx = FALSE, difitem = "all", digits = 4,
  SE.type = 2, ...)

# S3 method for dif summary(object, ...)

Arguments

dat

A required \(N \times J\) matrix or data.frame consisting of the responses of \(N\) individuals to \(J\) items. Missing values need to be coded as NA.

Q

A required matrix; The number of rows occupied by a single-strategy dichotomous item is 1, by a polytomous item is the number of nonzero categories, and by a mutiple-strategy dichotomous item is the number of strategies. The number of column is equal to the number of attributes if all items are single-strategy dichotomous items, but the number of attributes + 2 if any items are polytomous or have multiple strategies. For a polytomous item, the first column represents the item number and the second column indicates the nonzero category number. For a multiple-strategy dichotomous item, the first column represents the item number and the second column indicates the strategy number. For binary attributes, 1 denotes the attributes are measured by the items and 0 means the attributes are not measured. For polytomous attributes, non-zero elements indicate which level of attributes are needed (see Chen, & de la Torre, 2013). See Examples.

group

a numerical vector with integer 1, 2, ..., # of groups indicating the group each individual belongs to. It must start from 1 and its length must be equal to the number of individuals.

method

DIF detection method; It can be "wald" for Hou, de la Torre, and Nandakumar's (2014) Wald test method, and "LR" for likelihood ratio test (Ma, Terzi, Lee,& de la Torre, 2017).

p.adjust.methods

adjusted p-values for multiple hypothesis tests. This is conducted using p.adjust function in stats, and therefore all adjustment methods supported by p.adjust can be used, including "holm", "hochberg", "hommel", "bonferroni", "BH" and "BY". See p.adjust for more details. "bonferroni" is the default.

LR.type

Type of likelihood ratio test for DIF detection. It can be 'free.all' or 'free.one'.

LR.approx

Whether an approximated LR test is implemented? If TRUE, anchor item parameters will not be re-estimated but fixed.

difitem

Items for the DIF detection. By default, all items will be examined.

digits

How many decimal places in each number? The default is 4.

SE.type

Type of standard error estimation methods for the Wald test.

...

Other arguments passed to GDINA function for model calibration

object

GDINA object for various S3 methods

Value

A data frame giving the Wald statistics and associated p-values.

Methods (by generic)

  • summary: print summary information

References

Hou, L., de la Torre, J., & Nandakumar, R. (2014). Differential item functioning assessment in cognitive diagnostic modeling: Application of the Wald test to investigate DIF in the DINA model. Journal of Educational Measurement, 51, 98-125.

Ma, W., Terzi, R., Lee, S., & de la Torre, J. (2017, April). Multiple group cognitive diagnosis models and their applications in detecting differential item functioning. Paper presented at the Annual Meeting ofthe American Educational Research Association, San Antonio, TX.

See Also

GDINA

Examples

Run this code
# NOT RUN {
set.seed(123456)
N <- 3000
Q <- sim10GDINA$simQ
gs <- matrix(c(0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2,
                       0.1,0.2),ncol = 2, byrow = TRUE)
# By default, individuals are simulated from uniform distribution
# and deltas are simulated randomly
sim1 <- simGDINA(N,Q,gs.parm = gs,model="DINA")
sim2 <- simGDINA(N,Q,gs.parm = gs,model=c(rep("DINA",9),"DINO"))
dat <- rbind(extract(sim1,"dat"),extract(sim2,"dat"))
gr <- c(rep(1,N),rep(2,N))
dif.out <- dif(dat,Q,group=gr)
dif.out2 <- dif(dat,Q,group=gr,method="LR")
# }

Run the code above in your browser using DataLab