equate {equate}R Documentation

Linear and Equipercentile Equating

Description

This function performs linear and equipercentile equating of test scores under the random groups and nonequivalent groups with anchor test designs (as described in Kolen & Brennan, 2004).

Usage

equate(x, y, type, method = "none", bootse = FALSE,
  internal = TRUE, Ky = max(y[,1]), w = 1, ...)

Arguments

x, y score distributions of class “freqtab” for forms X and Y. Under the random groups design (i.e., no anchor test) x and y will each contain the score scale in column 1, and the number of examinees obtaining each score in column 2. For the nonequivalent groups design bivariate frequency tables are used, where columns 1 and 2 include all score combinations for the total and anchor test score scales, and column 3 contains the number of examinees obtaining each combination (see freqtab for details)
type the type of equating, as the string "mean", "linear", or "equipercentile"
method string specifying the equating method, where "none" (default) indicates observed score equating under the random groups design, and "tucker", "levine", and "frequency" (i.e., frequency estimation) indicate the respective methods under the nonequivalent groups design
bootse logical indicating whether or not bootstrap standard errors of equating should be returned (default is FALSE)
internal logical indicating whether or not the anchor item scores are included in the total scores (applies only to the Levine method; default is TRUE)
Ky integer, typically indicating the number of items on form Y, or the maximum possible score on Y. This value is used in equipercentile equating for the extremes of the scale (see equate.eq for details)
w value between 0 and 1 specifying the weight applied to form X scores (and implicitly specifying the form Y weight as 1 - w) when estimating the synthetic population
... further arguments passed to or from other methods

Details

As noted above, for the random groups design x and y are separate frequency tables where each row contains 1) a score scale point and 2) the total number of examinees obtaining that score. For the nonequivalent groups design each row contains 1) a score scale point on x or y, 2) a score scale point on the anchor test, and 3) the total number of examinees obtaining that score combination (see freqtab for more details).

The equating design is implied by the method argument, where "none" (default) indicates that no method is needed (because examinees taking forms X and Y are assumed to be randomly equivalent). The Tucker, Levine, and frequency estimation methods are supported for the nonequivalent groups with anchor test design. These methods rely on a “synthetic” distribution of scores which is a weighted combination of x and y (see synthetic for details).

For both mean and linear equating arguments are passed to equate.ln, and subsequenty to synthetic when the Tucker or Levine method is requested. The Levine method, or more specifically the Levine observed score method, requires the additional argument internal which is used to estimate the relationship between the anchor and total scores. For equipercentile equating, arguments are passed to equate.eq, where smoothing is carried out using the functions freqbump, freqavg and loglinear, each requiring additional smoothing parameters.

Standard errors are returned for the random groups design only. Bootstrap standard errors may be requested, in which case the default is 500 replications, sampling the maximum amount from each score distribution (see se.boot).

Value

An object of class “equate” is returned, listing the following components (the last 7 are conditional on the equating type, method, and smoothing):
type equating type
method equating method
design equating design, inferred from the method
stats means and standard deviations for the raw scores
freqtab frequency table containing the score scale, frequencies, and the cumulative distribution functions for forms X and Y
concordance conversion table containing scores on X with their form Y equivalents. For the random groups design a column of standard errors is included (see se.ln and se.eq for details)
coefficients slope and intercept used in mean and linear equating
synthstats means and standard deviations for the anchor and synthetic distributions
synthtab frequency table for the synthetic distribution, used in frequency estimation equipercentile equating
anchortab frequency table for the anchor test
smoothmethod smoothing method
smoothout a list of smoothing output, the length of which depends on the method chosen (for loglinear smoothing this list can be very long)
bootse vector of bootstrap standard errors of equating

Author(s)

Anthony Albano tony.d.albano@gmail.com

References

Kolen, M. J., & Brennan, R. L. (2004) Test Equating, Scaling, and Linking. (2nd ed.), New York: Springer.

See Also

equate.ln, equate.eq, synthetic, freqbump, freqavg, loglinear, se.ln, se.eq, se.boot

Examples

# random groups equating for (1) mean, (2) linear, 
# (3) equipercentile, and (4) equipercentile with 
# loglinear smoothing:
rscale <- ACTmath[,1]
rx <- freqtab(ACTmath[,2],rscale,addclass=TRUE)
ry <- freqtab(ACTmath[,3],rscale,addclass=TRUE)
set.seed(2007)

req1 <- equate(rx,ry,type="m",bootse=TRUE,reps=100)
req2 <- equate(rx,ry,type="l",bootse=TRUE,reps=100)
req3 <- equate(rx,ry,type="e",bootse=TRUE,reps=100)
req4 <- equate(rx,ry,type="e",bootse=TRUE,reps=100,
  smooth="loglin",degree=3)

# compare equated scores:
cbind(rscale,mean=req1$conc[,2],linear=req2$conc[,2],
  equip=req3$conc[,2],equipS=req4$conc[,2])

# compare boostrap standard errors:
cbind(rscale,linear=req2$see,equip=req3$see,equipS=req4$see)


# nonequivalent groups design for (1) Tucker linear, and
# (2-3) frequency estimation with weights of 0 and 1
nscale <- 0:36
vscale <- 0:12
nx <- freqtab(KBneat$x[,1],nscale,KBneat$x[,2],vscale)
ny <- freqtab(KBneat$y[,1],nscale,KBneat$y[,2],vscale)

neq1 <- equate(nx,ny,type="Linear",method="Tuck",w=1)
neq2 <- equate(nx,ny,type="equip",method="freq",w=1)
neq3 <- equate(nx,ny,type="equip",method="freq",w=0)

# compare equated scores:
cbind(nscale,Tucker=neq1$conc[,2],FEw1=neq2$conc[,2],
  FEw0=neq3$conc[,2])

[Package equate version 0.1-1 Index]