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.