coseq {lazy.irt}R Documentation

Classical Observed Score Equating

Description

This performs the observed score equating of the test score 1 to the test score 2.
Japanese help file: (coseq_JPH)

Usage

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
)

Arguments

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
= 2 to use equipercentile 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
= 2 to plot the cdf
= 3 to plot the smoothed cdf

Details

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.

Value

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.

Examples


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 )


[Package lazy.irt version 0.1.6 ]