oseq {lazy.irt} | R Documentation |
This function performs the IRT Observed Score Equating of
two test scores.
Japanese help file: (oseq_JPH)
oseq(
param1 = NULL,
param2 = NULL,
weight1 = NULL,
weight2 = NULL,
thmin = -4,
thmax = 4,
npoints = 31,
thdist = 1,
smooth1 = 0,
bandwid1 = 3,
smooth2 = 0,
bandwid2 = 3,
round = 0,
print = 0,
plot = 0
)
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 |
thmin |
The minimum value of theta to calculate the marginal score distribution. |
thmax |
The maximum value of theta to calculate the marginal score distribution. |
npoints |
# of theta points in |
thdist |
= 1 to use normal theta, = 0 to use uniform theta. |
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. |
round |
= 1 to round the result to integer |
print |
= 1 or 2 to print the result |
plot |
= 1 to plot the result |
This function equates the test score of test1, x1, to the score of test2,
x2. by the IRT Observed Score Equating.
The resulting score will be named as x2_1.
In irt observed score equating, the conditional distribution of X
given theta, Px_t, is calculated first.
Then, using the marginal distribution of theta, P_t,
the joint distribution of X and theta, Pxt, is calculated.
Finally, the marginal distribution of X, Px, is calculated from Pxt.
Given (x1, Px1) and (x2, Px2), equipercentile equating will be used
to equate x1 to x2.
Note that, when round=1
, the result may NOT be symmetric.
Run the example below with by_x=1
and round=1
.
The marginal distribution of the test score will be calculated by obscore_s which is a simpler form of obscore.
The equipercentile equating will be performed by coseq.
A list of
x1 The test score of test1.
x2 The test score of test2.
x2_1 The test2 equivalent score of x1.
p1 The marginal distribution of test1 score.
p2 The marginal distribution of test2 score.
res=oseq( paramS1, paramS2, print=2 )
res=oseq( paramS1, paramS2, weight1=weightS12, weight2=weightS21, print=2 )
# The effect of item weight.
res=oseq( paramS1, paramS1, weight2=weightS12, print=3 )
# checking if symmetric
# equate test1 to test2
res1 <- oseq( paramS1, paramS2 )
# equate test2 to test1
res2 <- oseq( paramS2, paramS1 )
# 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 )
rxr <- round(rx,4); ryr=round(ry,4)
printm(rxr,ryr)