tseq {lazy.irt}R Documentation

IRT True Score Equating

Description

This function performs the IRT True Score Equating of two test scores.
Japanese help file: (tseq_JPH)

Usage

tseq(
  param1 = NULL,
  param2 = NULL,
  weight1 = NULL,
  weight2 = NULL,
  method = 0,
  interpol = "spline",
  thmin = -5,
  thmax = 5,
  npoints = 121,
  round = 0,
  by_x = 1,
  print = 0,
  plot = 0
)

Arguments

param1

The item parameter data frame for test1

param2

The item parameter data frame for test2

weight1

The weight data frame for test1, or NULL

weight2

The weigth data frame for test2, or NULL

method

= 0 to use interpolation when calculating inv trf
= 1 to use native uniroot function (slow).

interpol

Interpolation option: See lazy.tools::interpol

thmin

The minimum value of theta for interpolation.

thmax

The maximum value of theta for interpolation.

npoints

# of theta points in [thmin,thmax] for interpolation.

round

= 1 to round the result to integer

by_x

The increment of x

print

= 1 or 2 to print the result

plot

= 1 to plot the result

Details

This function equates the test score of test1, x1, to the score of test2, x2.
The resulting score will be named as x2_1.

The score of test1 at
x1 <- seq(minscore,maxscore, by=by_x)
will be equated to the score of test2.

Note that, when round=1, the result may NOT be symmetric.
Run the example below with by_x=1 and round=1.

Value

A list of
x1 The test score of test1
x2_1 The test2 equivalent of x
theta The value of theta corresponding to x.
locmin The locations of very small theta values.
locmax The locations of very large theta values
minmax1 The minimum and maximum score of test1 score
minmax2 The minimum and maximum score of test2 score

Examples

res <- tseq( paramS1, paramS2, print=2 )
res <- tseq( paramS1, paramS2, weight1=weightS12, weight2=weightS21, print=2 )

# The effect of item weight.
res <- tseq( paramB1, paramB1, weight1=weightB11, weight2=weightB12, print=3 )

# checking if symmetric
# equate test1 to test2
res1 <- tseq( paramS1, paramS2, by_x=0.5 )
# equate test2 to test1
res2 <- tseq( paramS2, paramS1, by_x=0.5 )
# merge result
r1 <- data.frame(x1=res1$x1, y1=res1$x2_1)
r2 <- data.frame(y2=res2$x1, x2=res2$x2_1)
rx <- merge( r1, r2, by.x="x1", by.y="x2", all=TRUE)
rx$y <- ifelse( is.na(rx$y1), rx$y2, rx$y1 )
ry <- merge( r1, r2, by.x="y1", by.y="y2", all=TRUE)
ry$x <- ifelse( is.na(ry$x1), ry$x2, ry$x1 )
printm(rx,ry)

# comparison of methods
res1 <- tseq( paramS1, paramS1, method=1, by_x=0.1, weight2=weightS12 )
res2 <- tseq( paramS1, paramS1, method=0, by_x=0.1, weight2=weightS12 )
# Print(res1$x1, res1$x2_1, res1$x2_1-res2$x2_1, fmt="6.1, 6.4 9.6")
summary( abs(res1$x2_1-res2$x2_1) )



[Package lazy.irt version 0.1.6 ]