library(parSim)
Results <- parSim(
J = c(6, 10, 20),
N = c(300, 500, 1000),
# Number of repititions?
reps = 100, # more is better!
# Parallel?
nCores = 8,
export = c("rev_bias"),
expression = {
library(mirt)
a <- matrix(rlnorm(J, mean = 0, sd = 1), ncol = 1)
diffs <- t(apply(matrix(runif(J*4, .3, 1), nrow = J), 1, cumsum))
d <- -diffs + rnorm(J) + 4
dat1 <- simdata(a, d, N, itemtype = rep('graded', J))
dat2 <- dat1
dat2[dat2%in%0:1] <- 0
dat2[dat2==2] <- 1
dat2[dat2==3] <- 2
dat2[dat2==4] <- 3
dat3 <- dat1
dat3[dat3%in%1:2] <- 1
dat3[dat3==3] <- 2
dat3[dat3==4] <- 3
## Population model
mod1 <- mirt(dat1, model = 1)
mod1_param <- coef(mod1, simplify = TRUE)$items
mod1_gfi <- M2(mod1, "C2")
## Tail merge model: model2
mod2 <- mirt(dat2, model = 1)
mod2_param <- coef(mod2, simplify = TRUE)$items
mod2_gfi <- M2(mod2, "C2")
## middle category merge model: model3
mod3 <- mirt(dat3, model = 1)
mod3_param <- coef(mod3, simplify = TRUE)$items
mod3_gfi <- M2(mod3, "C2")
## output
data.frame(
bias_mod1 = rev_bias(true = as.numeric(a), est = mod1_param[,'a1']),
bias_mod2 = rev_bias(true = as.numeric(a), est = mod2_param[,'a1']),
bias_mod3 = rev_bias(true = as.numeric(a), est = mod3_param[,'a1']),
RMSEA_mod1 = mod1_gfi$RMSEA,
RMSEA_mod2 = mod2_gfi$RMSEA,
RMSEA_mod3 = mod3_gfi$RMSEA,
M2_mod1 = mod1_gfi$M2,
M2_mod2 = mod2_gfi$M2,
M2_mod3 = mod3_gfi$M2,
SRMSR_mod1 = mod1_gfi$SRMSR,
SRMSR_mod2 = mod2_gfi$SRMSR,
SRMSR_mod3 = mod3_gfi$SRMSR,
TLI_mod1 = mod1_gfi$TLI,
TLI_mod2 = mod2_gfi$TLI,
TLI_mod3 = mod3_gfi$TLI
)
}
)