Learn R Programming

CDM (version 7.4-19)

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 gdina.dif summary(object, …)

Arguments

object

Object of class gdina

Further arguments to be passed

Value

A list with following entries

difstats

Data frame containing results of item-wise Wald tests

coef

Data frame containing all (group-wise) item parameters

delta_all

List of \(\delta\) vectors containing all item parameters

varmat_all

List of covariance matrices of all \(\delta\) item parameters

prob.exp.group

List 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.

See Also

See the GDINA::dif function in the GDINA package for similar functionality.

Examples

Run this code
# NOT RUN {
#############################################################################
# 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 <- CDM::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 <- CDM::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 <- CDM::gdina( dat, q.matrix=q.matrix, rule="DINA", group=group )
summary(mod1)

#*** assess differential item functioning
dmod1 <- CDM::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
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab