Haebara Linking of the 2PL Model for Multiple Studies
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, XXXX;
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 class '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,…,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| θ_p )=a_i ( θ_p - b_i )
Haebara linking compares the observed item response functions P_{it} based on the equation for the logits a_{it}(θ - b_{it}) and the expected item response functions P_{it}^\ast based on the equation for the logits a_i^\ast σ_t ( θ - ( b_i - μ_t)/σ_t ) where the joint item parameters a_i and b_i and means μ_t and standard deviations σ_t are estimated.
Two loss functions are implemented. The quadratic loss of Haebara linking
(dist="L2") minimizes
f_{opt, L2}=∑_t ∑_i \int ( P_{it} (θ ) - P_{it}^\ast (θ ) )^2 w(θ)
was originally proposed by Haebara. A robustified version (dist="L1")
uses the optimization function (He et al., 2015)
f_{opt, L1}=∑_t ∑_i \int | P_{it} (θ ) - P_{it}^\ast (θ ) | w(θ)
As a further generalization, the follwing distance function (dist="Lp")
can be minimized:
f_{opt, Lp}=∑_t ∑_i \int | P_{it} (θ ) - P_{it}^\ast (θ ) |^p w(θ)
A list with following entries
pars |
Estimated means and standard deviations (transformation parameters) |
item |
Estimated joint item parameters |
a.orig |
Original a_{it} parameters |
b.orig |
Original b_{it} parameters |
a.resid |
Residual a_{it} parameters (DIF parameters) |
b.resid |
Residual b_{it} parameters (DIF parameters) |
res_optim |
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. (XXXX). Evaluating robust scale transformation methods with multiple outlying common items under IRT true score equating. Applied Psychological Measurement, XX(xx). 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.
## Not run:
#############################################################################
# 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
## End(Not run)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.