MirtStockingLord: Estimate Stocking-Lord transformation between two mirt...

View source: R/MirtStockingLord.R

MirtStockingLordR Documentation

Estimate Stocking-Lord transformation between two mirt objects and equate

Description

This functions takes two fitted unidimensional IRT models (fitted using mirt or unimirt) as an input, finds the Stocking-Lord transformation from one ability scale to the other, and then provides both true score and observed score equating between the two tests.

Usage

MirtStockingLord(
  mirtobj1,
  mirtobj2,
  which1 = NULL,
  which2 = NULL,
  fixSLA = FALSE
)

Arguments

mirtobj1

An object from a fitted unidimensional IRT model using mirt or unimirt. This will be for the test which equating is being done from (i.e. form X in equating terminology).

mirtobj2

An object from a fitted unidimensional IRT model using mirt or unimirt. This will be for the test which equating is being done to (i.e. form Y in equating terminology).

which1

A vector denoting which items in mirtobj1 are common with those in mirtobj2. Note that either both which 1 and which2 must be specified (and be of the same length) or neither. If neither are specified the function will identify common based on the item names stored within the mirt objects.

which2

A vector denoting which items in mirtobj2 are common with those in mirtobj1. See above and examples for further details.

fixSLA

Logical value denoting that the Stocking-Lord slope should be fixed at 1. This may be useful for linking two Rasch models. By default this parameter is FALSE.

Value

The function returns a list of two data frames. The first labelled StockingLord just contains the Stocking-Lord transformation parameters. The second labelled eqtable gives the possible scores from the test within mirtobj1 and the equated scores (using both true and observed score equating) from the test analysed in mirtobj2.

Examples

## Not run: 
mirt1=mirt(mathsdata[,1:10],1)
mirt2=mirt(mathsdata[,6:15],1)
MirtStockingLord(mirt1,mirt2)
#same equate but using two groups (one that got Q30 wrong and one got it right)
newd1=mathsdata[mathsdata$q30==0,1:10]
newd2=mathsdata[mathsdata$q30==1,6:15]
newmirt1=mirt(newd1,1)
newmirt2=mirt(newd2,1)
MirtStockingLord(newmirt1,newmirt2)

#what if we only include Q6 and Q7 as common items
MirtStockingLord(newmirt1,newmirt2,which1=c(6,7),which2=c(1,2))

#what if we only include Q9 as a common item
MirtStockingLord(newmirt1,newmirt2,which1=9,which2=4)

#same idea but using a Rasch (partial credit) model
newmirt1R=mirt(newd1,1,itemtype="Rasch")
newmirt2R=mirt(newd2,1,itemtype="Rasch")
MirtStockingLord(newmirt1R,newmirt2R,fixSLA=TRUE,which1=9,which2=4)

## End(Not run)

CambridgeAssessmentResearch/unimirt documentation built on June 10, 2025, 6:03 a.m.