## ----message=FALSE------------------------------------------------------------
library("equateMultiple")
data("timss19")

## ----message=FALSE------------------------------------------------------------
library(mirt)
est.mods <- list()
for (i in 1:14)
  est.mods[[i]] <- mirt(timss19$data[[i]][, -(1:3)], 1, itemtype = "2PL", SE = TRUE)

## ----message=FALSE, results='hide'--------------------------------------------
mods <- modIRT(est.mods = est.mods, names = names(timss19$data))

## -----------------------------------------------------------------------------
eqINDLIK <- multiec(mods = mods, method = "indlik") 
summary(eqINDLIK)

## -----------------------------------------------------------------------------
dif_positions <- multiDIF(mods = mods, se = TRUE, X.DIF = timss19$positions)
summary(dif_positions)

## -----------------------------------------------------------------------------
logLik(eqINDLIK)
logLik(dif_positions)

## -----------------------------------------------------------------------------
data("dataDIF", package = "equateIRT")
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)
mods <- list(mod1, mod2, mod3)

## ----message=FALSE, results='hide'--------------------------------------------
mods_extract <- modIRT(mods)

## -----------------------------------------------------------------------------
eqINDLIK <- multiec(mods_extract, method = "indlik")
summary(eqINDLIK)

## -----------------------------------------------------------------------------
lambda <- seq(1, 100, by = 0.5)
out <- list()
for (i in 1:length(lambda))
{
  dif_lambda <- multiDIF(mods = mods_extract, start = eqINDLIK, 
    itempar.DIF = TRUE, lambda_mcp = lambda[i])
  out[[i]] <- dif_lambda
}

## -----------------------------------------------------------------------------
bic <- lapply(out, function(x) x$BIC)
sel_bic <- which.min(bic)
dif_param <- out[[sel_bic]]
summary(dif_param)

