Package {equateMultiple}


Type: Package
Title: Equating of Multiple Forms
Version: 1.2.0
Author: Michela Battauz [aut, cre], Waldir Leoncio [ctb]
Maintainer: Michela Battauz <michela.battauz@uniud.it>
Description: Equating of multiple forms using Item Response Theory (IRT) methods. See Battauz (2025) <doi:10.18637/jss.v115.i11> for a detailed description of the package. See Battauz M. (2017) <doi:10.1007/s11336-016-9517-x>, Battauz and 'Leoncio' (2023) <doi:10.1177/01466216231151702> and Haberman S. J. (2009) <doi:10.1002/j.2333-8504.2009.tb02197.x>) for the methods to link multiple test forms. See <doi:10.1111/bmsp.70023> for DIF detection across multiple groups.
License: GPL-3
Imports: stats, graphics, numDeriv, statmod, Rcpp (≥ 1.0.7), Matrix, mvtnorm, data.table
Depends: equateIRT(≥ 2.5.2), R(≥ 3.5.0)
LinkingTo: Rcpp, RcppArmadillo, RcppDist
Suggests: knitr, rmarkdown, ltm, mirt
VignetteBuilder: knitr
NeedsCompilation: yes
Packaged: 2026-10-22 13:26:39 UTC; pc
Repository: CRAN
Date/Publication: 2026-10-22 14:10:02 UTC

Equating of Multiple Forms

Description

The EquateMultiple package implements IRT-based methods to equate simultaneously many forms calibrated separately. This package estimates the equating coefficients to convert the item parameters and the ability values to the scale of the base form. It can be applied to a large number of test forms, as well as to 2 forms. The computation of the equated scores is also implemented. DIF detection across multiple groups calibrated separately is also implemented.

Details

This package implements the methods proposed in Haberman (2009), Battauz (2017), Battauz and Leoncio (2023) and Battauz (2025). Function multiec computes the equating coefficients to convert the item parameters and the ability values to the scale of the base form. The methods implemented are: multiple mean-geometric mean (Haberman, 2009), multiple mean-mean, multiple item response function, multiple test response function (Battauz, 2017), likelihood-based linking (Battauz and Leoncio, 2023), and independent likelihood (Battauz, 2025). The function provides the equating coefficients, estimates of item parameters on a common scale and the standard errors of the equating coefficients and item parameters on a common scale. Equated scores can be computed using true score equating and observed score equating methods. Standard errors of equated scores are also provided. A detailed description of the package is provided in Battauz (2025a). Function multiDIF implements the method for DIF detection across multiple groups proposed in Battauz (2025b).

Author(s)

Michela Battauz [aut, cre], Waldir Leoncio [ctb]

Maintainer: Michela Battauz <michela.battauz@uniud.it>

References

Battauz, M. (2017). Multiple equating of separate IRT calibrations. Psychometrika, 82, 610–636. doi:10.1007/s11336-016-9517-x.

Battuz, M (2025a).equateMultiple: An R Package to Equate Multiple Forms. Journal of Statistical Software, 115, 1–21. doi: 10.18637/jss.v115.i11.

Battauz, M. (2025b). Differential item functioning detection across multiple groups. British Journal of Mathematical and Statistical Psychology, 00, 1-19. doi:10.1111/bmsp.70023.

Battauz, M., Leoncio, W. (2023). A Likelihood Approach to Item Response Theory Equating of Multiple Forms Applied Psychological Measurement, 47, 200-220. doi: 10.1177/01466216231151702.

Haberman, S. J. (2009). Linking parameter estimates derived from an item response model through separate calibrations. ETS Research Report Series, 2009, i-9. doi:10.1002/j.2333-8504.2009.tb02197.x.

See Also

equateIRT

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple mean-mean method
eqMM <- multiec(mods = mods, base = 1, method = "mean-mean")
summary(eqMM)

# Estimation of the equating coefficients with the 
# multiple mean-geometric mean method (Haberman, 2009)
eqMGM <- multiec(mods = mods, base = 1, method = "mean-gmean")
summary(eqMGM)

# Estimation of the equating coefficients with the multiple item response function method
eqIRF <- multiec(mods = mods, base = 1, method = "irf")
summary(eqIRF)

# Estimation of the equating coefficients with the multiple item response function method
# using as initial values the estimates obtained with the multiple mean-geometric mean method
eqMGM <- multiec(mods = mods, base = 1, method = "mean-gmean", se = FALSE)
eqIRF <- multiec(mods = mods, base = 1, method = "irf", start = eqMGM)
summary(eqIRF)

# Estimation of the equating coefficients with the multiple test response function method
eqTRF <- multiec(mods = mods, base = 1, method = "trf")
summary(eqTRF)

# Estimation of the equating coefficients with the likelihood-based method
eqLIK <- multiec(mods = mods, base = 1, method = "lik")
summary(eqLIK)

# Estimation of the equating coefficients with the independent likelihood method
eqINDLIK <- multiec(mods = mods, base = 1, method = "indlik")
summary(eqINDLIK)

# scoring using the true score equating method and equating coefficients 
# obtained with the multiple item response function method
score(eqIRF)

Extract Equating Coefficients of Multiple Forms

Description

eqc is a generic function which extracts the equating coefficients.

Usage

## S3 method for class 'mlteqc'
eqc(x, ...)

Arguments

x

object of the class mlteqc returned by function multiec

...

further arguments passed to or from other methods.

Value

A data frame containing the equating coefficients.

Author(s)

Michela Battauz

See Also

multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple item response function method
eqIRF <- multiec(mods = mods, base = 1, method = "irf")

# extract equating coefficients
eqc(eqIRF)

Estimates the Item Parameters on a Common Scale

Description

item.common is a generic function which extracts the estimates of the item parameters on the scale of the base form, which is obtained using the item parameter estimates across all forms.

Usage

item.common(x, ...)

## S3 method for class 'mlteqc'
item.common(x, ...)

Arguments

x

object of the class mlteqc returned by function multiec

...

further arguments passed to or from other methods.

Value

A data frame containing item names (Item), estimated value of the item parameter (Estimate) and its standard error (StdErr).

Author(s)

Michela Battauz

See Also

itm, multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple item response function method
eqIRF <- multiec(mods = mods, base = 1, method = "irf")

# estimates of the item parameters on the scale of the base form
item.common(eqIRF)

Extract Item Parameters

Description

itm is a generic function which extracts a data frame containing the item parameters of multiple forms in the original scale and the item parameters converted to the scale of the base form.

Usage

## S3 method for class 'mlteqc'
itm(x, ...)

Arguments

x

object of the class mlteqc returned by function multiec

...

further arguments passed to or from other methods.

Value

A data frame containing item names (Item), item parameters of all the forms (e.g. T1, ..., T3), and item parameters of all the forms converted in the scale of the base form (e.g. T3.as.T1).

Author(s)

Michela Battauz

See Also

multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple item response function method
eqIRF <- multiec(mods = mods, base = 1, method = "irf")

# extract item parameters
itm(eqIRF)

Extract Log-Likelihood

Description

logLik method for class mltDIF.

Usage

## S3 method for class 'mltDIF'
logLik(object, ...)

Arguments

object

an object of the class mltDIF returned by function multiDIF.

...

further arguments passed to or from other methods.

Value

An object of class logLik.

Author(s)

Michela Battauz

References

Battauz, M. (2025). Differential item functioning detection across multiple groups. British Journal of Mathematical and Statistical Psychology, 00, 1-19. doi:10.1111/bmsp.70023.

See Also

multiDIF


Extract Log-Likelihood

Description

logLik method for class mlteqc when the independent likelihood method is used.

Usage

## S3 method for class 'mlteqc'
logLik(object, ...)

Arguments

object

an object of the class mlteqc returned by function multiec with method = "indlik".

...

further arguments passed to or from other methods.

Value

An object of class logLik.

Author(s)

Michela Battauz

References

Battauz, M. (2025). Differential item functioning detection across multiple groups. British Journal of Mathematical and Statistical Psychology, 00, 1-19. doi:10.1111/bmsp.70023.

See Also

multiec


Math Test Data

Description

List of 5 datasets with the binary responses (correct/wrong) to 5 forms of a math test.

Usage

data("mathTest")

Format

A list of length 5, containing 5 data frames. Each dataset contains rows of responses from individuals to various items, with the item labels as the column headers.

Examples

data(mathTest)
mathTest[[1]][1:3,]

DIF detection across multiple groups

Description

This function uses a penalized likelihood method that simultaneously detects DIF and estimates the equating coefficients across multiple groups.

Usage

  multiDIF(mods, base = 1, se = FALSE, start = NULL, iter.max = 100000, 
  X.DIF = NULL, itempar.DIF = FALSE, lambda_mcp = 0, tau_mcp = 3)

Arguments

mods

an object of the class modIRT containing item parameter coefficients and their covariance matrix of the forms to be equated.

base

integer value indicating the base form.

se

logical; if TRUE the standard errors of the equating coefficients and of the coefficients of the covariates are computed. Standard errors are provided only if itempar.DIF is set to FALSE.

start

initial values. This can be a vector containing the A and B equating coefficients excluding the base form, or an object of class mlteqc returned by function multiec.

iter.max

maximum number of iterations allowed.

X.DIF

A list of matrices of covariates for DIF analysis. Each matrix of the list corresponds to a different group or form. Row names correspond to item labels; column names correspond to covariate labels.

itempar.DIF

Logical; if TRUE, every item parameter is checked for DIF.

lambda_mcp

The \lambda parameter for the MCP penalty.

tau_mcp

The \tau parameter for the MCP penalty.

Value

An object of class mltDIF with components

A

A equating coefficients.

B

B equating coefficients.

se.A

standard errors of A equating coefficients.

se.B

standard errors of B equating coefficients.

varAB

covariance matrix of equating coefficients and covariate DIF effects.

as

discrimination parameters on a common scale \hat a_j^*.

bs

difficulty parameters on a common scale \hat b_j^*.

tab

data frame containing item parameter names (Item), item parameter estimates of all the forms (e.g. T1, ..., T3), and item parameter estimates of all the forms converted in the scale of the base form (e.g. T3.as.T1).

varFull

list of covariance matrices of the item parameter estimates of every form.

partial

partial derivatives of equating coefficients with respect to the item parameters.

itmp

number of item parameters of the IRT model.

method

the equating method used.

lambda_mcp

tuning parameter of mcp.

tau_mcp

tuning parameter of mcp.

basename

the name of the base form.

convergence

An integer code. 0 indicates successful convergence.

coef

coefficients of the covariates.

se.coef

standard errors of thecoefficients of the covariates.

loglik

log-likelihood value.

delta_a

DIF effects of discrimination parameters.

delta_b

DIF effects of difficulty parameters.

nobs

number of observations, that is the number of item parameter estimates across all forms.

npar

number of parameters different from zero.

AIC

Akaike information criterion.

BIC

Bayesian information criterion.

Author(s)

Michela Battauz

References

Battauz, M. (2025). Differential item functioning detection across multiple groups. British Journal of Mathematical and Statistical Psychology, 00, 1-19. doi:10.1111/bmsp.70023.

See Also

multiec, modIRT, summary.mltDIF.

Examples


## Not run: 

# ===============================================================
# example of detection of covariates effects
# ===============================================================

data("timss19")
library(mirt)

# estimation of the item parameters separately for each booklet
est.mods <- list()
for (i in 1:14)
  est.mods[[i]] <- mirt(timss19$data[[i]][, -(1:3)], 1, itemtype = "2PL", SE = TRUE)

# extract item parameter estimates and covariance matrices
mods <- modIRT(est.mods = est.mods, names = names(timss19$data))

# estimation of the equating coefficients using the independent likelihood method
eqINDLIK <- multiec(mods = mods, method = "indlik") 
summary(eqINDLIK)

# estimation of position effects on the item parameters
dif_positions <- multiDIF(mods = mods, se = TRUE, X.DIF = timss19$positions)
summary(dif_positions)

# log-likelihood without and with DIF effects
logLik(eqINDLIK)
logLik(dif_positions)



# ===============================================================
# example of detection of DIF effects at the item and group level
# ===============================================================

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]

# estimation of item parameters separately for each group
mod1 <- mirt(data1, SE = TRUE)
mod2 <- mirt(data2, SE = TRUE)
mod3 <- mirt(data3, SE = TRUE)
mods <- list(mod1, mod2, mod3)

# conversion of item parameters
mods_extract <- modIRT(mods, display = FALSE)

# estimation of the equating coefficients (without accounting for DIF)
eqINDLIK <- multiec(mods_extract, method = "indlik")
summary(eqINDLIK)

# DIF dectection
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
}

# selection of the tuning parameter on the basis of BIC
bic <- lapply(out, function(x) x$BIC)
plot(lambda, bic, type = "b", xlab = expression(lambda), ylab = "BIC")
sel_bic <- which.min(bic)
dif_param <- out[[sel_bic]]
summary(dif_param)


## End(Not run)

Multiple Equating Coefficients

Description

Calculates the equating coefficients between multiple forms.

Usage

multiec(mods, base = 1, method = "mean-mean", se = TRUE, nq = 30, start = NULL, 
	iter.max = 100000, obsinf = TRUE, trace = TRUE)

Arguments

mods

an object of the class modIRT containing item parameter coefficients and their covariance matrix of the forms to be equated.

base

integer value indicating the base form.

method

the method used to compute the equating coefficients. This should be one of "mean-mean", "mean-gmean", "irf", "trf", "indlik" or "indlik" (see details).

se

logical; if TRUE the standard errors of the equating coefficients and the item parameters on a common scale are computed.

nq

number of quadrature points used for the Gauss-Hermite quadrature for methods "irf" or "trf".

start

initial values. This can be a vector containing the A and B equating coefficients excluding the base form, or an object of class mlteqc returned by function multiec. Used only with methods "irf", "trf" and "lik".

iter.max

maximum number of iterations allowed. Used only with methods "irf", "trf", "lik" and "indlik".

obsinf

logical; if TRUE the standard errors are computed using the observed information matrix. Used only with method "lik", see Battauz and Leoncio (2023).

trace

logical; if TRUE tracing information is produced.

Details

The methods implemented for the computation of the multiple equating coefficients are the multiple mean-mean method ("mean-mean"), the multiple mean-geometric mean method ("mean-gmean"), the multiple item response function method ("irf"), the multiple test response function method ("trf"), likelihood-based equating ("lik") and the independent likelihood ("indlik").

Value

An object of class mlteqc with components

A

A equating coefficients.

B

B equating coefficients.

se.A

standard errors of A equating coefficients.

se.B

standard errors of B equating coefficients.

varAB

covariance matrix of equating coefficients.

as

discrimination parameters on a common scale \hat a_j^*.

bs

difficulty parameters on a common scale \hat b_j^*.

se.as

standard errors of discrimination parameters on a common scale.

se.bs

standard errors of difficulty parameters on a common scale.

tab

data frame containing item parameter names (Item), item parameter estimates of all the forms (e.g. T1, ..., T3), and item parameter estimates of all the forms converted in the scale of the base form (e.g. T3.as.T1).

varFull

list of covariance matrices of the item parameter estimates of every form.

partial

partial derivatives of equating coefficients with respect to the item parameters.

itmp

number of item parameters of the IRT model.

method

the equating method used.

basename

the name of the base form.

convergence

An integer code. 0 indicates successful convergence. Returned only with methods "irf", "trf", "lik" and indlik.

Author(s)

Michela Battauz, Waldir Leoncio [ctb]

References

Battauz, M. (2017). Multiple equating of separate IRT calibrations. Psychometrika, 82, 610–636.

Battauz, M., Leoncio, W. (2023). A Likelihood Approach to Item Response Theory Equating of Multiple Forms Applied Psychological Measurement, 47, 200-220. doi: 10.1177/01466216231151702.

Battauz, M. (2025). Differential item functioning detection across multiple groups. British Journal of Mathematical and Statistical Psychology, 00, 1-19. doi:10.1111/bmsp.70023.

Haberman, S. J. (2009). Linking parameter estimates derived from an item response model through separate calibrations. ETS Research Report Series, 2009, i-9.

See Also

score.mlteqc, summary.mlteqc, modIRT.

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple mean-mean method
eqMM <- multiec(mods = mods, base = 1, method = "mean-mean")
summary(eqMM)

# Estimation of the equating coefficients with the 
# multiple mean-geometric mean method (Haberman, 2009)
eqMGM <- multiec(mods = mods, base = 1, method = "mean-gmean")
summary(eqMGM)

# Estimation of the equating coefficients with the multiple item response function method
eqIRF <- multiec(mods = mods, base = 1, method = "irf")
summary(eqIRF)

# Estimation of the equating coefficients with the multiple item response function method
# using as initial values the estimates obtained with the multiple mean-geometric mean method
eqMGM <- multiec(mods = mods, base = 1, method = "mean-gmean", se = FALSE)
eqIRF <- multiec(mods = mods, base = 1, method = "irf", start = eqMGM)
summary(eqIRF)

# Estimation of the equating coefficients with the multiple test response function method
eqTRF <- multiec(mods = mods, base = 1, method = "trf")
summary(eqTRF)

# Estimation of the equating coefficients with the likelihood-based method
eqLIK <- multiec(mods = mods, base = 1, method = "lik")
summary(eqLIK)

# Estimation of the equating coefficients with the independent likelihood method
eqINDLIK <- multiec(mods = mods, base = 1, method = "indlik")
summary(eqINDLIK)


Plot of Item Parameter Estimates

Description

plot method for class mlteqc, which plots item parameter estimates of one form agains the item parameter estimates of the base form before and after conversion.

Usage

## S3 method for class 'mlteqc'
plot(x, form = 2, ask = prod(par("mfcol")) < x$itmp*2 && dev.interactive(), ...)

Arguments

x

an object of the class mlteqc returned by function multiec.

form

test form. It can be specified by name or number.

ask

logical; if TRUE, the user is asked before each plot.

...

further arguments passed to or from other methods.

Author(s)

Michela Battauz

See Also

multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple mean-mean method
eqMM <- multiec(mods = mods, base = 1, method = "mean-mean")
plot(eqMM, form = "T2")

Scoring of multiple forms

Description

Relates number-correct scores on multiple forms.

Usage

## S3 method for class 'mlteqc'
score(obj, method="TSE", D=1, scores=NULL,  se=TRUE, nq=30, 
  w=0.5, theta=NULL, weights=NULL, ...)

Arguments

obj

object of the class mlteqc returned by function multiec.

method

the scoring method to be used. This should be one of "TSE" (the default) for true score equating or "OSE" for observed score equating.

D

constant D of the IRT model used to estimate item parameters.

scores

integer values to be converted.

se

logical; is TRUE standard errors of equated scores are computed.

nq

number of quadrature points used to approximate integrals with observed score equating. Used only if arguments theta and weights are NULL.

w

synthetic weight for population 1. It should be a number between 0 and 1.

theta

vector of ability values used to approximate integrals with observed score equating.

weights

vector of weights used to approximate integrals with observed score equating.

...

further arguments passed to or from other methods.

Details

In this function common items are internal, i.e. they are used for scoring the test.

Value

A data frame containing theta values (only for true score equating), scores of the form chosen as base, equated scores of all other forms, and standard errors of equated scores.

Author(s)

Michela Battauz

References

Kolen, M.J. and Brennan, R.L. (2014). Test equating, scaling, and linking: methods and practices, 3nd ed., New York: Springer.

Ogasawara, H. (2001). Item response theory true score equatings and their standard errors. Journal of Educational and Behavioral Statistics, 26, 31–50.

Ogasawara, H. (2003). Asymptotic standard errors of IRT observed-score equating methods. Psychometrika, 68, 193–211.

See Also

multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)

# Estimation of the equating coefficients with the multiple item response function method
eqIRF<-multiec(mods = mods, base = 1, method = "irf")
summary(eqIRF)

# scoring using the true score equating method
score(eqIRF)

# scoring using observed score equating method, without standard errors
score(eqIRF, method = "OSE", se = FALSE)

Summarizing DIF Effects Obtained with the Independent Likelihood Equating Method

Description

summary method for class mltDIF.

Usage

## S3 method for class 'mltDIF'
summary(object, ...)

Arguments

object

an object of the class mltDIF returned by function multiDIF.

...

further arguments passed to or from other methods.

Author(s)

Michela Battauz

See Also

multiDIF


Summarizing Estimated Equating Coefficients

Description

summary method for class mlteqc.

Usage

## S3 method for class 'mlteqc'
summary(object, ...)

Arguments

object

an object of the class mlteqc returned by function multiec.

...

further arguments passed to or from other methods.

Author(s)

Michela Battauz

See Also

multiec

Examples

data(est2pl)
# prepare the data
mods <- modIRT(coef = est2pl$coef, var = est2pl$var, display = FALSE)
# Estimation of the equating coefficients with the multiple mean-mean method
eqMM <- multiec(mods = mods, base = 1, method = "mean-mean")
summary(eqMM)

TIMSS 2019 Math responses

Description

Responses of 4th grade students from USA to the Math items of TIMSS 2019. Only binary response items are included.

Usage

data("timss19")

Format

A list of length 2 with components:

data

a list composed of 14 data frames, one for each booklet, containing the responses to the items.

positions

a list composed of 14 data frames, one for each booklet, containing the positions of the items in the booklet in column 'position' and its square in column 'position2'. The position was retrieved from the location of the item in the block. Hence, some items might have the same position.

Examples

data(timss19)
head(timss19$data$B01)
timss19$positions$B01