| 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
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 |
... |
further arguments passed to or from other methods. |
Value
A data frame containing the equating coefficients.
Author(s)
Michela Battauz
See Also
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 |
... |
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
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 |
... |
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
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 |
... |
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
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 |
... |
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
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 |
base |
integer value indicating the base form. |
se |
logical; if |
start |
initial values. This can be a vector containing the A and B equating coefficients excluding the base form, or an object of class |
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 |
lambda_mcp |
The |
tau_mcp |
The |
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 |
bs |
difficulty parameters on a common scale |
tab |
data frame containing item parameter names ( |
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 |
base |
integer value indicating the base form. |
method |
the method used to compute the equating coefficients.
This should be one of " |
se |
logical; if |
nq |
number of quadrature points used for the Gauss-Hermite quadrature for
methods " |
start |
initial values. This can be a vector containing the A and B equating coefficients excluding
the base form, or an object of class |
iter.max |
maximum number of iterations allowed.
Used only with methods " |
obsinf |
logical; if |
trace |
logical; if |
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 |
bs |
difficulty parameters on a common scale |
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 ( |
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 " |
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 |
form |
test form. It can be specified by name or number. |
ask |
logical; if |
... |
further arguments passed to or from other methods. |
Author(s)
Michela Battauz
See Also
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 |
method |
the scoring method to be used. This should be one of " |
D |
constant D of the IRT model used to estimate item parameters. |
scores |
integer values to be converted. |
se |
logical; is |
nq |
number of quadrature points used to approximate integrals with observed score equating.
Used only if arguments |
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
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 |
... |
further arguments passed to or from other methods. |
Author(s)
Michela Battauz
See Also
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 |
... |
further arguments passed to or from other methods. |
Author(s)
Michela Battauz
See Also
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:
dataa list composed of 14 data frames, one for each booklet, containing the responses to the items.
positionsa 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