set.seed(123)
n <- 300 # sample size
group <- rep(c(0, 1), each = n / 2) # binary group membership variable
theta <- rnorm(n) # latent trait
# generating 5 continuous items with noise
Data <- data.frame(
Item1 = 0.5 * theta + rnorm(n), # No DIF
Item2 = 0.4 * theta + 0.3 * group + rnorm(n), # Uniform DIF
Item3 = 0.6 * theta + 0.6 * theta * group + rnorm(n), # Non-uniform DIF
Item4 = 0.4 * theta + rnorm(n), # No DIF
Item5 = 0.4 * theta - 0.4 * group + rnorm(n) # Uniform DIF
)
# various matching criteria
difContinuous(Data, group, focal.name = 1)
difContinuous(Data, group, focal.name = 1, match = rowSums(Data))
difContinuous(Data, group, focal.name = 1, match = as.data.frame(replicate(5, rowSums(Data))))
difContinuous(Data, group, focal.name = 1, match = "zscore")
difContinuous(Data, group, focal.name = 1, match = "restscore")
difContinuous(Data, group, focal.name = 1, match = theta)
# DIF detection with linear model, anchor items
difContinuous(Data, group, focal.name = 1, anchor = c(1, 4))
difContinuous(Data, group, focal.name = 1, anchor = paste0("Item", c(1, 4)))
# DIF detection with linear model, different type of DIF
difContinuous(Data, group, focal.name = 1, type = "both")
difContinuous(Data, group, focal.name = 1, type = "udif")
difContinuous(Data, group, focal.name = 1, type = "nudif")
# DIF detection with linear model, different test criterion
difContinuous(Data, group, focal.name = 1, criterion = "F")
difContinuous(Data, group, focal.name = 1, criterion = "Wald")
# DIF detection with linear model, item purification and multiple comparison corrections
difContinuous(Data, group, focal.name = 1, purify = TRUE)
difContinuous(Data, group, focal.name = 1, p.adjust.method = "BH")
difContinuous(Data, group, focal.name = 1, purify = TRUE,
p.adjust.method = "holm", puriadjType = "simple")
difContinuous(Data, group, focal.name = 1, purify = TRUE,
p.adjust.method = "holm", puriadjType = "combined")
Run the code above in your browser using DataLab