equate {equate} | R Documentation |
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).
equate(x, y, type, method = "none", bootse = FALSE, internal = TRUE, Ky = max(y[,1]), w = 1, ...)
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 |
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
).
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 |
Anthony Albano tony.d.albano@gmail.com
Kolen, M. J., & Brennan, R. L. (2004) Test Equating, Scaling, and Linking. (2nd ed.), New York: Springer.
equate.ln
, equate.eq
, synthetic
, freqbump
, freqavg
, loglinear
, se.ln
, se.eq
, se.boot
# 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])