The R Package equateMultiple: A Tutorial

Functionalities

The equateMultiple package computes:

  • Equating coefficients between multiple forms.
  • Item parameter estimates on a common scale (based on the item parameter estimates from different forms).
  • Standard errors of the equating coefficients and the item parameter estimates on a common scale.

Data preparation

Data preparation follows the same steps of the equateIRT package.

Load the package equateMultiple and the data

library("equateMultiple")
## Loading required package: equateIRT
data("data2pl", package = "equateIRT")

Estimate a two parameter logistic model for 5 data sets with the R package mirt

library("mirt")
m1 <- mirt(data2pl[[1]], SE = TRUE)
m2 <- mirt(data2pl[[2]], SE = TRUE)
m3 <- mirt(data2pl[[3]], SE = TRUE)
m4 <- mirt(data2pl[[4]], SE = TRUE)
m5 <- mirt(data2pl[[5]], SE = TRUE)

Create an object of class modIRT

mlist<- list(m1, m2, m3, m4, m5)
test <- paste("test", 1:5, sep = "")
mods <- modIRT(est.mods = mlist, names = test, display = FALSE)

The linkage plan

lplan<-linkp(mods = mods)
lplan
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   20   10    0    0   10
## [2,]   10   20   10    0    0
## [3,]    0   10   20   10    0
## [4,]    0    0   10   20   10
## [5,]   10    0    0   10   20

Multiple equating coefficients

Estimation of the equating coefficients using the multiple mean-mean method. Form 1 is the base form.

eqMM <- multiec(mods = mods, method = "mean-mean")
## Computation of equating coefficients  .  .  .  . 
## Computation of standard errors  .  .  .  .
summary(eqMM)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.84001 0.018641
##   A test3  0.84285 0.021321
##   A test4  0.83876 0.020682
##   A test5  1.02323 0.021556
##   B test1  0.00000 0.000000
##   B test2  0.10723 0.022389
##   B test3  0.20275 0.023998
##   B test4  0.36789 0.024059
##   B test5  0.50312 0.023977

Estimation of the equating coefficients using the multiple mean-geometric mean method.

eqMGM <- multiec(mods = mods, method = "mean-gmean")
## Computation of equating coefficients  .  .  .  . 
## Computation of standard errors  .  .  .  .
summary(eqMGM)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.83813 0.018688
##   A test3  0.83986 0.021370
##   A test4  0.83575 0.020736
##   A test5  1.02115 0.021623
##   B test1  0.00000 0.000000
##   B test2  0.10726 0.022373
##   B test3  0.20316 0.023898
##   B test4  0.36779 0.023992
##   B test5  0.50293 0.023952

Estimation of the equating coefficients using the multiple item response function method.

eqIRF<-multiec(mods = mods, method = "irf")
## Computation of equating coefficients  .  .  .  . 
## Computation of standard errors  .  .  .  .
summary(eqIRF)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.83588 0.018346
##   A test3  0.83551 0.020907
##   A test4  0.82863 0.020163
##   A test5  1.01232 0.021216
##   B test1  0.00000 0.000000
##   B test2  0.10838 0.021732
##   B test3  0.20976 0.022989
##   B test4  0.37218 0.023038
##   B test5  0.49821 0.023505

Estimation of the equating coefficients using the multiple item response function method. The initial values are the estimates obtained with the multiple mean-geometric mean method.

eqMGM <- multiec(mods = mods, method = "mean-gmean", se = FALSE)
## Computation of equating coefficients  .  .  .  .
eqIRF<-multiec(mods = mods, method = "irf", start = eqMGM)
## Computation of equating coefficients  .  .  .  . 
## Computation of standard errors  .  .  .  .
summary(eqIRF)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.83588 0.018346
##   A test3  0.83551 0.020907
##   A test4  0.82863 0.020163
##   A test5  1.01232 0.021216
##   B test1  0.00000 0.000000
##   B test2  0.10838 0.021732
##   B test3  0.20976 0.022989
##   B test4  0.37218 0.023038
##   B test5  0.49821 0.023505

Estimation of the equating coefficients using the multiple test response function method.

eqTRF<-multiec(mods = mods, method = "trf")
## Computation of equating coefficients  .  .  .  . 
## Computation of standard errors  .  .  .  .
summary(eqTRF)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.83636 0.018414
##   A test3  0.83687 0.021036
##   A test4  0.83097 0.020288
##   A test5  1.01625 0.021242
##   B test1  0.00000 0.000000
##   B test2  0.10677 0.021781
##   B test3  0.20626 0.023079
##   B test4  0.36896 0.023105
##   B test5  0.49615 0.023550

Estimation of the equating coefficients using the likelihood-based method.

eqLIK <- multiec(mods = mods, method = "lik")
## Computation of equating coefficients  .  .  .  .   
## Computation of standard errors  .  .  .  .
summary(eqLIK)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  1.00000 0.000000
##   A test2  0.83598 0.018307
##   A test3  0.83685 0.020879
##   A test4  0.83112 0.020097
##   A test5  1.01735 0.021281
##   B test1  0.00000 0.000000
##   B test2  0.10860 0.021723
##   B test3  0.21062 0.022994
##   B test4  0.37256 0.023027
##   B test5  0.49782 0.023502

It is possible to change the base form, that is the form whose item parameter estimates are left unchanged. All other item parameter estimates are converted to the scale of the base form.

eqLIK <- multiec(mods = mods, method = "lik", base = 5)
## Computation of equating coefficients  .  .  .  .   
## Computation of standard errors  .  .  .  .
summary(eqLIK)
## Equating coefficients:
##  EQ  Form Estimate   StdErr
##   A test1  0.98302 0.020562
##   A test2  0.82178 0.020199
##   A test3  0.82268 0.020485
##   A test4  0.81696 0.017662
##   A test5  1.00000 0.000000
##   B test1 -0.48940 0.023486
##   B test2 -0.38266 0.023121
##   B test3 -0.28236 0.022808
##   B test4 -0.12318 0.021301
##   B test5  0.00000 0.000000

Item parameter estimates on a common scale

The package computes estimates of the item parameters on the scale of the base form, obtained using all estimates available for the same item across all the forms. Their standard errors are also computed. They can be extracted as follows (using the multiple item response function method).

item.common(eqIRF)
##           Item    Estimate     StdErr
## 1    Dscrmn.I1  1.02652530 0.03495975
## 2   Dscrmn.I10  1.31948324 0.04191803
## 3   Dscrmn.I11  1.06342212 0.04224192
## 4   Dscrmn.I12  1.10845097 0.04290795
## 5   Dscrmn.I13  1.37885644 0.04903040
## 6   Dscrmn.I14  1.18555992 0.04467058
## 7   Dscrmn.I15  1.08034189 0.04233749
## 8   Dscrmn.I16  1.37261998 0.04859053
## 9   Dscrmn.I17  1.25174298 0.04602021
## 10  Dscrmn.I18  1.14803194 0.04332686
## 11  Dscrmn.I19  1.31580738 0.04872432
## 12   Dscrmn.I2  1.13822432 0.03720922
## 13  Dscrmn.I20  1.00764475 0.03982246
## 14  Dscrmn.I21  1.19507601 0.04486314
## 15  Dscrmn.I22  1.24082387 0.04649240
## 16  Dscrmn.I23  1.29795840 0.04916097
## 17  Dscrmn.I24  1.04197007 0.04135682
## 18  Dscrmn.I25  1.28124101 0.04707868
## 19  Dscrmn.I26  1.33037490 0.04829875
## 20  Dscrmn.I27  1.31366426 0.04847777
## 21  Dscrmn.I28  1.15439454 0.04383667
## 22  Dscrmn.I29  1.10637354 0.04397104
## 23   Dscrmn.I3  1.07855018 0.03598696
## 24  Dscrmn.I30  1.30604236 0.04850613
## 25  Dscrmn.I31  1.46888755 0.04241811
## 26  Dscrmn.I32  1.36995941 0.04104517
## 27  Dscrmn.I33  1.33421246 0.03937279
## 28  Dscrmn.I34  1.40114311 0.04123979
## 29  Dscrmn.I35  1.29815213 0.03835338
## 30  Dscrmn.I36  1.05179536 0.03409166
## 31  Dscrmn.I37  1.26979112 0.03774838
## 32  Dscrmn.I38  1.47862668 0.04232501
## 33  Dscrmn.I39  1.38810080 0.04052315
## 34   Dscrmn.I4  1.31548168 0.04116937
## 35  Dscrmn.I40  1.45854135 0.04347621
## 36  Dscrmn.I41  1.19020293 0.04362829
## 37  Dscrmn.I42  1.20045309 0.04252692
## 38  Dscrmn.I43  1.18295833 0.04270864
## 39  Dscrmn.I44  1.14471888 0.04116369
## 40  Dscrmn.I45  1.39705107 0.04621696
## 41  Dscrmn.I46  1.35358270 0.04673421
## 42  Dscrmn.I47  1.26265214 0.04281988
## 43  Dscrmn.I48  1.15607873 0.04036263
## 44  Dscrmn.I49  0.98071137 0.03644209
## 45   Dscrmn.I5  1.02766152 0.03506514
## 46  Dscrmn.I50  1.23335941 0.04212137
## 47   Dscrmn.I6  0.94149371 0.03479529
## 48   Dscrmn.I7  1.00568277 0.03460417
## 49   Dscrmn.I8  1.18404445 0.03821698
## 50   Dscrmn.I9  1.00420319 0.03477178
## 51   Dffclt.I1  0.04729781 0.02626137
## 52  Dffclt.I10  0.67038640 0.02732356
## 53  Dffclt.I11  0.93113357 0.03786443
## 54  Dffclt.I12  0.79050080 0.03394265
## 55  Dffclt.I13  0.43713941 0.02580696
## 56  Dffclt.I14  0.75476773 0.03217098
## 57  Dffclt.I15  0.82963371 0.03520837
## 58  Dffclt.I16  0.11717165 0.02454754
## 59  Dffclt.I17  0.59912678 0.02880217
## 60  Dffclt.I18  0.57943272 0.02960223
## 61  Dffclt.I19  0.89351648 0.03337780
## 62   Dffclt.I2  0.01210300 0.02491868
## 63  Dffclt.I20  0.07415299 0.02822900
## 64  Dffclt.I21  0.23688948 0.02654187
## 65  Dffclt.I22 -0.09924292 0.02835816
## 66  Dffclt.I23 -0.41499245 0.03312636
## 67  Dffclt.I24  0.62596997 0.03080688
## 68  Dffclt.I25  0.39511469 0.02610118
## 69  Dffclt.I26  0.28096278 0.02541336
## 70  Dffclt.I27  0.74521506 0.02949214
## 71  Dffclt.I28  0.38465839 0.02720872
## 72  Dffclt.I29 -0.41131364 0.03550641
## 73   Dffclt.I3  0.04689779 0.02558258
## 74  Dffclt.I30  0.81859219 0.03083072
## 75  Dffclt.I31  0.52979689 0.02372639
## 76  Dffclt.I32  0.80606548 0.02743385
## 77  Dffclt.I33  0.55956721 0.02498080
## 78  Dffclt.I34 -0.36526934 0.02563614
## 79  Dffclt.I35  0.45865817 0.02460116
## 80  Dffclt.I36  0.85492089 0.03189395
## 81  Dffclt.I37  0.48778059 0.02493596
## 82  Dffclt.I38 -0.12764922 0.02319156
## 83  Dffclt.I39  0.51879390 0.02436926
## 84   Dffclt.I4  0.38880128 0.02448540
## 85  Dffclt.I40  0.85877342 0.02694958
## 86  Dffclt.I41 -0.58159689 0.03787620
## 87  Dffclt.I42 -0.28819961 0.03160015
## 88  Dffclt.I43  1.26082476 0.03757152
## 89  Dffclt.I44  1.12148675 0.03504277
## 90  Dffclt.I45  0.56097371 0.02531162
## 91  Dffclt.I46 -0.31006416 0.03034852
## 92  Dffclt.I47  0.47890518 0.02583944
## 93  Dffclt.I48  0.20248015 0.02675857
## 94  Dffclt.I49  0.28033084 0.02880551
## 95   Dffclt.I5  0.01797425 0.02628429
## 96  Dffclt.I50  0.34072018 0.02579272
## 97   Dffclt.I6 -0.77064798 0.03742373
## 98   Dffclt.I7  0.14049864 0.02665738
## 99   Dffclt.I8  0.33649415 0.02530837
## 100  Dffclt.I9 -0.17811176 0.02743718

Equated scores

Equated scores with the true score equating method

scTSE<-score(eqIRF)
## The following scores are not attainable: 0
round(scTSE,3)
##     theta test1 test2.as.test1 StdErr_test2.as.test1 test3.as.test1
## 1  -2.344     1          1.073                 0.027          0.783
## 2  -1.661     2          2.072                 0.034          1.651
## 3  -1.242     3          3.041                 0.039          2.551
## 4  -0.929     4          3.992                 0.041          3.469
## 5  -0.672     5          4.933                 0.042          4.402
## 6  -0.449     6          5.870                 0.042          5.346
## 7  -0.248     7          6.806                 0.041          6.301
## 8  -0.060     8          7.743                 0.040          7.264
## 9   0.119     9          8.682                 0.040          8.236
## 10  0.293    10          9.626                 0.041          9.217
## 11  0.467    11         10.576                 0.043         10.208
## 12  0.642    12         11.534                 0.047         11.209
## 13  0.825    13         12.501                 0.052         12.222
## 14  1.018    14         13.481                 0.058         13.249
## 15  1.230    15         14.476                 0.062         14.293
## 16  1.472    16         15.491                 0.065         15.358
## 17  1.764    17         16.532                 0.065         16.450
## 18  2.152    18         17.611                 0.060         17.578
## 19  2.781    19         18.746                 0.044         18.753
## 20 35.212    20         20.000                 0.000         20.000
##    StdErr_test3.as.test1 test4.as.test1 StdErr_test4.as.test1 test5.as.test1
## 1                  0.041          0.932                 0.050          0.750
## 2                  0.060          1.967                 0.071          1.633
## 3                  0.070          3.016                 0.080          2.562
## 4                  0.074          4.061                 0.082          3.516
## 5                  0.074          5.096                 0.080          4.486
## 6                  0.071          6.116                 0.076          5.467
## 7                  0.067          7.124                 0.070          6.456
## 8                  0.063          8.118                 0.065          7.453
## 9                  0.060          9.102                 0.061          8.456
## 10                 0.060         10.075                 0.059          9.466
## 11                 0.063         11.041                 0.059         10.483
## 12                 0.068         12.002                 0.061         11.508
## 13                 0.074         12.961                 0.065         12.540
## 14                 0.081         13.920                 0.069         13.580
## 15                 0.087         14.884                 0.073         14.629
## 16                 0.091         15.858                 0.074         15.688
## 17                 0.089         16.848                 0.073         16.756
## 18                 0.081         17.861                 0.066         17.836
## 19                 0.059         18.909                 0.049         18.926
## 20                 0.000         20.000                 0.000         20.000
##    StdErr_test5.as.test1
## 1                  0.034
## 2                  0.047
## 3                  0.052
## 4                  0.052
## 5                  0.050
## 6                  0.047
## 7                  0.045
## 8                  0.043
## 9                  0.041
## 10                 0.040
## 11                 0.041
## 12                 0.042
## 13                 0.044
## 14                 0.047
## 15                 0.050
## 16                 0.051
## 17                 0.051
## 18                 0.047
## 19                 0.036
## 20                 0.000

Equated scores with the observed score equating method, avoiding computation of standard errors

scOSE<-score(eqIRF, method = "OSE", se = FALSE)
round(scOSE,3)
##    test1 test2.as.test1 test3.as.test1 test4.as.test1 test5.as.test1
## 1      0          0.031         -0.164         -0.025         -0.158
## 2      1          1.032          0.714          0.983          0.725
## 3      2          2.014          1.611          2.013          1.639
## 4      3          2.982          2.524          3.048          2.576
## 5      4          3.941          3.444          4.079          3.531
## 6      5          4.893          4.379          5.102          4.498
## 7      6          5.841          5.327          6.115          5.475
## 8      7          6.788          6.285          7.117          6.460
## 9      8          7.735          7.252          8.110          7.453
## 10     9          8.683          8.227          9.094          8.453
## 11    10          9.635          9.211         10.070          9.458
## 12    11         10.590         10.203         11.041         10.470
## 13    12         11.551         11.203         12.007         11.489
## 14    13         12.519         12.214         12.971         12.515
## 15    14         13.497         13.235         13.935         13.547
## 16    15         14.487         14.269         14.902         14.588
## 17    16         15.489         15.317         15.875         15.637
## 18    17         16.507         16.378         16.858         16.693
## 19    18         17.551         17.451         17.854         17.757
## 20    19         18.626         18.548         18.868         18.829
## 21    20         19.742         19.703         19.906         19.907