linking.haebara.Rd
The function linking.haebara
is a generalization of Haebara linking
of the 2PL model to multiple groups (or multiple studies; see Battauz, 2017,
for a similar approach). The optimization estimates transformation parameters for
means and standard deviations of the groups and joint item parameters.
The function allows two different distance functions dist="L2"
and
dist="L1"
where the latter is a robustified version of
Haebara linking (see Details; He, Cui, & Osterlind, 2015; He & Cui, 2020;
Hu, Rogers, & Vukmirovic, 2008).
linking.haebara(itempars, dist="L2", theta=seq(-4,4, length=61), optimizer="optim", center=FALSE, eps=1e-3, par_init=NULL, use_rcpp=TRUE, pow=2, use_der=TRUE, ...) # S3 method for linking.haebara summary(object, digits=3, file=NULL, ...)
itempars | A data frame with four or five columns. The first four columns contain
in the order: study name, item name, \(a\) parameter, \(b\) parameter.
The fifth column is an optional weight for every item and every study. See
|
---|---|
dist | Distance function. Options are |
theta | Grid of theta points for 2PL item response functions |
optimizer | Name of the optimizer chosen for alignment. Options are
|
center | Logical indicating whether means and standard deviations should be centered after estimation |
eps | Small value for smooth approximation of the absolute value function |
par_init | Optional vector of initial parameter estimates |
use_rcpp | Logical indicating whether Rcpp is used for computation |
pow | Power for method |
use_der | Logical indicating whether analytical derivative should be used |
object | Object of class |
digits | Number of digits after decimals for rounding in |
file | Optional file name if |
... | Further arguments to be passed |
For \(t=1,\ldots,T\) studies, item difficulties \(b_{it}\) and item slopes \(a_{it}\) are available. The 2PL item response functions are given by $$ logit P(X_{pi}=1| \theta_p )=a_i ( \theta_p - b_i ) $$
Haebara linking compares the observed item response functions \(P_{it}\) based on the equation for the logits \(a_{it}(\theta - b_{it})\) and the expected item response functions \(P_{it}^\ast\) based on the equation for the logits \(a_i^\ast \sigma_t ( \theta - ( b_i - \mu_t)/\sigma_t )\) where the joint item parameters \(a_i\) and \(b_i\) and means \(\mu_t\) and standard deviations \(\sigma_t\) are estimated.
Two loss functions are implemented. The quadratic loss of Haebara linking
(dist="L2"
) minimizes
$$f_{opt, L2}=\sum_t \sum_i \int ( P_{it} (\theta ) - P_{it}^\ast (\theta ) )^2 w(\theta)$$
was originally proposed by Haebara. A robustified version (dist="L1"
)
uses the optimization function (He et al., 2015)
$$f_{opt, L1}=\sum_t \sum_i \int | P_{it} (\theta ) - P_{it}^\ast (\theta ) | w(\theta)$$
As a further generalization, the follwing distance function (dist="Lp"
)
can be minimized:
$$f_{opt, Lp}=\sum_t \sum_i \int | P_{it} (\theta ) - P_{it}^\ast (\theta ) |^p w(\theta)$$
A list with following entries
Estimated means and standard deviations (transformation parameters)
Estimated joint item parameters
Original \(a_{it}\) parameters
Original \(b_{it}\) parameters
Residual \(a_{it}\) parameters (DIF parameters)
Residual \(b_{it}\) parameters (DIF parameters)
Value of optimization routine
Battauz, M. (2017). Multiple equating of separate IRT calibrations. Psychometrika, 82, 610-636. doi: 10.1007/s11336-016-9517-x
He, Y., Cui, Z., & Osterlind, S. J. (2015). New robust scale transformation methods in the presence of outlying common items. Applied Psychological Measurement, 39(8), 613-626. doi: 10.1177/0146621615587003
He, Y., & Cui, Z. (2020). Evaluating robust scale transformation methods with multiple outlying common items under IRT true score equating. Applied Psychological Measurement, 44(4), 296-310. doi: 10.1177/0146621619886050
Hu, H., Rogers, W. T., & Vukmirovic, Z. (2008). Investigation of IRT-based equating methods in the presence of outlier common items. Applied Psychological Measurement, 32(4), 311-333. doi: 10.1177/0146621606292215
See invariance.alignment
and linking.haberman
for alternative linking methods in the sirt package. See also
TAM::tam.linking
in the TAM package for more linking functionality
and the R packages plink, equateIRT, equateMultiple and
SNSequate.
if (FALSE) { ############################################################################# # EXAMPLE 1: Robust linking methods in the presence of outliers ############################################################################# #** simulate data I <- 10 a <- seq(.9, 1.1, len=I) b <- seq(-2, 2, len=I) #- define item parameters item_names <- paste0("I",100+1:I) # th=SIG*TH+MU=> logit(p)=a*(SIG*TH+MU-b)=a*SIG*(TH-(-MU)/SIG-b/SIG) d1 <- data.frame( study="S1", item=item_names, a=a, b=b ) mu <- .5; sigma <- 1.3 d2 <- data.frame( study="S2", item=item_names, a=a*sigma, b=(b-mu)/sigma ) mu <- -.3; sigma <- .7 d3 <- data.frame( study="S3", item=item_names, a=a*sigma, b=(b-mu)/sigma ) #- define DIF effect # dif <- 0 # no DIF effects dif <- 1 d2[4,"a"] <- d2[4,"a"] * (1-.8*dif) d3[5,"b"] <- d3[5,"b"] - 2*dif itempars <- rbind(d1, d2, d3) #* Haebara linking non-robust mod1 <- sirt::linking.haebara( itempars, dist="L2", control=list(trace=2) ) summary(mod1) #* Haebara linking robust mod2 <- sirt::linking.haebara( itempars, dist="L1", control=list(trace=2) ) summary(mod2) #* using initial parameter estimates par_init <- mod1$res_optim$par mod2b <- sirt::linking.haebara( itempars, dist="L1", par_init=par_init) summary(mod2b) #* power p=.25 mod2c <- sirt::linking.haebara( itempars, dist="Lp", pow=.25, par_init=par_init) summary(mod2c) #* Haberman linking non-robust mod3 <- sirt::linking.haberman(itempars) summary(mod3) #* Haberman linking robust mod4 <- sirt::linking.haberman(itempars, estimation="BSQ", a_trim=.25, b_trim=.5) summary(mod4) #* compare transformation parameters (means and standard deviations) mod1$pars mod2$pars mod3$transf.personpars mod4$transf.personpars }