coseq {lazy.irt} | R Documentation |
This performs the observed score equating of
the test score 1 to the test score 2.
Japanese help file: (coseq_JPH)
coseq(
score1,
freq1,
cdf1 = NULL,
score2,
freq2,
cdf2 = NULL,
lim1 = NULL,
lim2 = NULL,
smooth1 = 0,
bandwid1 = 3,
smooth2 = 0,
bandwid2 = 3,
method = 2,
interpol_method = "linear",
title = "",
nolow = 0,
print = 1,
plot = 1
)
score1 |
a vector consisting of the score of test1 |
freq1 |
a vector consisting of the frequency counts at score1 |
cdf1 |
a vector consisting of the cumulative frequencies at score1 |
score2 |
a vector consisting of the score of test2 |
freq2 |
a vector consisting of the frequency counts at score2 |
cdf2 |
a vector consisting of the cumulative frequencies at score2 |
lim1 |
min and max score of test1 |
lim2 |
min and max score of test2 |
smooth1 |
# of times to smooth cdf1 |
bandwid1 |
bandwidth for running average smooth of cdf1 |
smooth2 |
# of times to smooth cdf2 |
bandwid2 |
bandwidth for running average smooth of cdf2 |
method |
= 1 to use linear equating |
interpol_method |
= "constant", "linear" or "spline" |
title |
title string |
nolow |
= 1 to avoid lowering scores |
print |
= 1 to print the result |
plot |
= 1 to plot the conversion table |
Equipercentile equating of test1 score x1
to test2 score x2
is defined as
x21 = invF2( F1(x1) )
where F1
is the distribution function of x1
and
invF2
is the inverse of the distribution function of x2
.
In this function, invF2
is calculated by interpolating
( F2(x2), x2 )
at F1(x1)
with or without smoothing.
Equipercentile equating is essentially the same as native qqplot
.
Therefore, the following two codes produce similar results:
eq( score1=score1, freq1=freq1, score2=score2, freq2=freq2 ) qqplot( expand_freqdist( score1, freq1 ) , expand_freqdist( score2, freq2 ), type="l" )
Note that, since native qqplot
cannot handle case weight,
lazy.tools::expand_freqdist
is used to recover the raw data
from frequency table.
cdf
has priority over freq
.
a list of the following:
ctable0: the conversion table consisting of (score, score21, freq1)
ctable: the conversion table to the rounded score.
mands: the summary stat of the converted score dist: (score21,freq1)
newfreq: the frequency distribution of the converted score (score21, freq21)
sdist1 and sdist2: input and smoothed score distributions
cntr: a list of control parameters used.
ctable
shows that
test score score1[i] of test1 is equivalent to
test score score21[i] of test2.
set.seed(1701)
x1 <- round( 10*rbeta(500,2,4) )
f1 <- table(x1)
x1 <- as.numeric(names(f1))
x2 <- round( 15*rbeta(1000,4,2) )
f2 <- table(x2)
x2 <- as.numeric(names(f2))
reseq <- coseq( score1=x1, freq1=f1, score2=x2, freq2=f2
, lim1=c(0,10), lim2=c(0,15)
, smooth1=3, smooth2=3, method=2, plot=0 )