Learn R Programming

CDM (version 4.8-0)

gdina.dif: Differential Item Functioning in the GDINA Model

Description

This function assesses item-wise differential item functioning in the GDINA model by using the Wald test (de la Torre, 2011; Hou, de la Torre & Nandakumar, 2014). It is necessary that a multiple group GDINA model is previously fitted.

Usage

gdina.dif(object)

## S3 method for class 'gdina.dif':
summary(object, \dots)

Arguments

object
Object of class gdina
...
Further arguments to be passed

Value

  • A list with following entries
  • difstatsData frame containing results of item-wise Wald tests
  • coefData frame containing all (group-wise) item parameters
  • delta_allList of $\delta$ vectors containing all item parameters
  • varmat_allList of covariance matrices of all $\delta$ item parameters
  • prob.exp.groupList with groups and items containing expected latent class sizes and expected probabilities for each group and each item. Based on this information, effect sizes of differential item functioning can be calculated.

Details

The p values are also calculated by a Holm adjustment for multiple comparisons (see p.holm in output difstats). In the case of two groups, an effect size of differential item functioning (labeled as UA (unsigned area) in difstats value) is defined as the weighted absolute difference of item response functions. The DIF measure for item $j$ is defined as $$UA_j = \sum_l w( \alpha_l ) | P( X_j=1 | \alpha_l , G=1 ) - P( X_j=1 | \alpha_l , G=2 ) |$$ where $w( \alpha_l ) = [ P( \alpha_l | G=1 ) + P( \alpha_l | G=2 ) ]/2$.

References

de la Torre, J. (2011). The generalized {DINA} model framework. Psychometrika, 76, 179-199. 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.

Examples

Run this code
#############################################################################
# SIMULATED EXAMPLE 1: DIF for DINA simulated data
#############################################################################		

# simulate some data
set.seed(976)
N <- 2000    # number of persons in a group
I <- 9       # number of items
q.matrix <- matrix( 0 , 9,2 )
q.matrix[1:3,1] <- 1
q.matrix[4:6,2] <- 1
q.matrix[7:9,c(1,2)] <- 1
# simulate first group
guess <- rep( .2 , I )
slip <- rep(.1, I)
dat1 <- sim.din( N=N , q.matrix=q.matrix , guess=guess , slip=slip , mean=c(0,0) )$dat
# simulate second group with some DIF items (items 1, 7 and 8)
guess[ c(1,7)] <- c(.3 , .35 )
slip[8] <- .25
dat2 <- sim.din( N=N , q.matrix=q.matrix , guess=guess , slip=slip , mean=c(0.4,.25) )$dat
group <- rep(1:2 , each=N )
dat <- rbind( dat1 , dat2 )

#*** estimate multiple group GDINA model
mod1 <- gdina( dat , q.matrix=q.matrix , rule="DINA" , group=group )
summary(mod1)

#*** assess differential item functioning
dmod1 <- gdina.dif( mod1)
summary(dmod1)
  ##     item      X2 df      p p.holm     UA
  ##   1 I001 10.1711  2 0.0062 0.0495 0.0428
  ##   2 I002  1.9933  2 0.3691 1.0000 0.0276
  ##   3 I003  0.0313  2 0.9845 1.0000 0.0040
  ##   4 I004  0.0290  2 0.9856 1.0000 0.0044
  ##   5 I005  2.3230  2 0.3130 1.0000 0.0142
  ##   6 I006  1.8330  2 0.3999 1.0000 0.0159
  ##   7 I007 40.6851  2 0.0000 0.0000 0.1184
  ##   8 I008  6.7912  2 0.0335 0.2346 0.0710
  ##   9 I009  1.1538  2 0.5616 1.0000 0.0180

Run the code above in your browser using DataLab