Learn R Programming

irtoys (version 0.1.5)

sca: Linear transformation of the IRT scale

Description

Linearly transform a set of IRT parameters to bring them to the scale of another set of parameters. Four methods are implemented: Mean/Mean, Mean/Sigma, Lord-Stocking, and Haebara.

Usage

sca(old.ip, new.ip, old.items, new.items, old.qu = NULL, new.qu = NULL, method = "MS", 
    bec = FALSE)

Arguments

old.ip
A set of parameters that are already on the desired scale
new.ip
A set of parameters that must be placed on the same scale as old.ip
old.items
A vector of indexes pointing to those items in old.ip that are common to both sets of parameters
new.items
The indexes of the same items in new.ip
old.qu
A quadrature object for old.ip, typically produced by the same program that estimated old.ip. Only needed if method="LS" or method="HB"
new.qu
A quadrature object for new.ip, typically produced by the same program that estimated new.ip. Only needed if method="HB"
method
One of "MM" (Mean/Mean), "MS" (Mean/Sigma), "SL" (Stocking-Lord), or "HB" (Haebara). Default is "MS"
bec
Use back-equating correction? When TRUE, the Stocking-Lord or Hebaera procedures will be adjusted for back-equating (see Hebaera, 1980). Ignored when method is MM or MS. Default is FALSE.

Value

  • A list of:
  • slopeThe slope of the linear transformation
  • interceptThe intercept of the linear transformation
  • scaled.ipThe parameters in new.ip tranformed to a scale that is compatible with old.ip

References

Kolen, M.J. & R.L. Brennan (1995) Test Equating: Methods and Practices. Springer.

Haebara, T. (1980) Equating logistic ability scales by a weighted lest squares method. Japanese Psychological Research, 22, p.144--149

Examples

Run this code
# a small simulation to demonstrate transformation to a common scale fake 50 2PL items
pa <- cbind(runif(50, 0.8, 2), runif(50, -2.4, 2.4), rep(0, 50))
# simulate responses with two samples of different ability levels
r.1 <- sim(ip = pa[1:30, ], x = rnorm(1000, -0.5))
r.2 <- sim(ip = pa[21:50, ], x = rnorm(1000, 0.5))
# estimate item parameters
p.1 <- est(r.1, engine = "ltm")
p.2 <- est(r.2, engine = "ltm")
# plot difficulties to show difference in scale
plot(c(-3, 3), c(-3, 3), ty = "n", xlab = "True", ylab = "Estimated", main = "Achieving common scale")
text(pa[1:30, 2], p.1[, 2], 1:30)
text(pa[21:50, 2], p.2[, 2], 21:50, co = 2)
# scale with the default Mean/Sigma method
pa.sc = sca(old.ip = p.1, new.ip = p.2, old.items = 21:30, new.items = 1:10)
# add difficulties of scaled items to plot
text(pa[21:50, 2], pa.sc$scaled.ip[, 2], 21:50, co = 3)

Run the code above in your browser using DataLab