View source: R/linking.haebara.R
linking.haebara | R Documentation |
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 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, |
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
pars |
Estimated means and standard deviations (transformation parameters) |
item |
Estimated joint item parameters |
a.orig |
Original |
b.orig |
Original |
a.resid |
Residual |
b.resid |
Residual |
res_optim |
Value of optimization routine |
Battauz, M. (2017). Multiple equating of separate IRT calibrations. Psychometrika, 82, 610-636. \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.