# load the data
data(dataDIF)
head(dataDIF)
# estimate a 2PL model for each group using the R package mirt
library(mirt)
data1 <- dataDIF[dataDIF$group == 1, 1:20]
data2 <- dataDIF[dataDIF$group == 2, 1:20]
data3 <- dataDIF[dataDIF$group == 3, 1:20]
mod1 <- mirt(data1, SE = TRUE)
mod2 <- mirt(data2, SE = TRUE)
mod3 <- mirt(data3, SE = TRUE)
# extract the coefficients and the covariance matrix
est1 <- import.mirt(mod1, display = FALSE)
est2 <- import.mirt(mod2, display = FALSE)
est3 <- import.mirt(mod3, display = FALSE)
# perform the test for DIF on two groups
res_diftest2 <- dif.test(coef = list(est1$coef, est2$coef),
var = list(est1$var, est2$var))
res_diftest2
# perform the test for DIF on three groups
res_diftest3 <- dif.test(coef = list(est1$coef, est2$coef, est3$coef),
var = list(est1$var, est2$var, est3$var))
res_diftest3
# perform the test for DIF on three groups
# reference group: 2
# equating method: Haebara
# purification applied
res_diftest3 <- dif.test(coef = list(est1$coef, est2$coef, est3$coef),
var = list(est1$var, est2$var, est3$var), reference = 2,
method = "Haebara", purification = TRUE)
res_diftest3
Run the code above in your browser using DataLab