
Performs linking of fitted unidimensional item response models in TAM
according to the Stocking-Lord and the Haebara method (Kolen & Brennan, 2014;
Gonzales & Wiberg, 2017).
Several studies are linking by a chain of linkings of two studies. The linking
of two studies is implemented in the tam_linking_2studies
function.
tam.linking(tamobj_list, type="SL", theta=NULL, wgt=NULL, fix.slope=FALSE,
verbose=TRUE)# S3 method for tam.linking
summary(object, file=NULL, …)
# S3 method for tam.linking
print(x, …)
tam_linking_2studies( B1, AXsi1, guess1, B2, AXsi2, guess2, theta, wgt, type,
M1=0, SD1=1, M2=0, SD2=1, fix.slope=FALSE)
# S3 method for tam_linking_2studies
summary(object, file=NULL, …)
# S3 method for tam_linking_2studies
print(x, …)
List of fitted objects in TAM
Type of linking method: "SL"
(Stocking-Lord) or "Hae"
(Haebara).
The default is the Stocking-Lord method.
Grid of seq(-6,6,len=101)
.
Weights defined for the theta
grid. The default is
tam_normalize_vector( stats::dnorm( theta, sd=2 ))
.
Logical indicating whether the slope transformation constant is fixed to 1.
Logical indicating progress of linking computation
Object of class tam.linking
or tam_linking_2studies
.
Object of class tam.linking
or tam_linking_2studies
.
A file name in which the summary output will be written
Further arguments to be passed
Array
Matrix
Guessing parameter for first study
Array
Matrix
Guessing parameter for second study
Mean of first study
Standard deviation of first study
Mean of second study
Standard deviation of second study
List containing entries
List containing transformed item parameters
List containing results of each linking in the linking chain
Mean and standard deviation for each study after linking
Transformation constants for item parameters
Transformation constants for person parameters
Battauz, M. (2015). equateIRT: An R package for IRT test equating. Journal of Statistical Software, 68(7), 1-22.
Gonzalez, J., & Wiberg, M. (2017). Applying test equating methods: Using R. New York, Springer.
Kolen, M. J., & Brennan, R. L. (2014). Test equating, scaling, and linking: Methods and practices. New York, Springer.
Weeks, J. P. (2010). plink: An R package for linking mixed-format tests using IRT-based methods. Journal of Statistical Software, 35(12), 1-33.
Linking or equating of item response models can be also conducted with plink (Weeks, 2010), equate, equateIRT (Battauz, 2015), equateMultiple, kequate and irteQ packages.
See also the sirt::linking.haberman
and
sirt::invariance.alignment
functions
in the sirt package.
# NOT RUN {
#############################################################################
# EXAMPLE 1: Linking dichotomous data with the 2PL model
#############################################################################
data(data.ex16)
dat <- data.ex16
items <- colnames(dat)[-c(1,2)]
# fit grade 1
rdat1 <- TAM::tam_remove_missings( dat[ dat$grade==1, ], items=items )
mod1 <- TAM::tam.mml.2pl( resp=rdat1$resp[, rdat1$items], pid=rdat1$dat$idstud )
summary(mod1)
# fit grade 2
rdat2 <- TAM::tam_remove_missings( dat[ dat$grade==2, ], items=items )
mod2 <- TAM::tam.mml.2pl( resp=rdat2$resp[, rdat2$items], pid=rdat2$dat$idstud )
summary(mod2)
# fit grade 3
rdat3 <- TAM::tam_remove_missings( dat[ dat$grade==3, ], items=items )
mod3 <- TAM::tam.mml.2pl( resp=rdat3$resp[, rdat3$items], pid=rdat3$dat$idstud )
summary(mod3)
# define list of fitted models
tamobj_list <- list( mod1, mod2, mod3 )
#-- link item response models
lmod <- TAM::tam.linking( tamobj_list)
summary(lmod)
# estimate WLEs based on transformed item parameters
parm_list <- lmod$parameters_list
# WLE grade 1
arglist <- list( resp=mod1$resp, B=parm_list[[1]]$B, AXsi=parm_list[[1]]$AXsi )
wle1 <- TAM::tam.mml.wle(tamobj=arglist)
# WLE grade 2
arglist <- list( resp=mod2$resp, B=parm_list[[2]]$B, AXsi=parm_list[[2]]$AXsi )
wle2 <- TAM::tam.mml.wle(tamobj=arglist)
# WLE grade 3
arglist <- list( resp=mod3$resp, B=parm_list[[3]]$B, AXsi=parm_list[[3]]$AXsi )
wle3 <- TAM::tam.mml.wle(tamobj=arglist)
#############################################################################
# EXAMPLE 2: Linking polytomous data with the partial credit model
#############################################################################
data(data.ex17)
dat <- data.ex17
items <- colnames(dat)[-c(1,2)]
# fit grade 1
rdat1 <- TAM::tam_remove_missings( dat[ dat$grade==1, ], items=items )
mod1 <- TAM::tam.mml.2pl( resp=rdat1$resp[, rdat1$items], pid=rdat1$dat$idstud )
summary(mod1)
# fit grade 2
rdat2 <- TAM::tam_remove_missings( dat[ dat$grade==2, ], items=items )
mod2 <- TAM::tam.mml.2pl( resp=rdat2$resp[, rdat2$items], pid=rdat2$dat$idstud )
summary(mod2)
# fit grade 3
rdat3 <- TAM::tam_remove_missings( dat[ dat$grade==3, ], items=items )
mod3 <- TAM::tam.mml.2pl( resp=rdat3$resp[, rdat3$items], pid=rdat3$dat$idstud )
summary(mod3)
# list of fitted TAM models
tamobj_list <- list( mod1, mod2, mod3 )
#-- linking: fix slope because partial credit model is fitted
lmod <- TAM::tam.linking( tamobj_list, fix.slope=TRUE)
summary(lmod)
# WLEs can be estimated in the same way as in Example 1.
#############################################################################
# EXAMPLE 3: Linking dichotomous data with the multiple group 2PL models
#############################################################################
data(data.ex16)
dat <- data.ex16
items <- colnames(dat)[-c(1,2)]
# fit grade 1
rdat1 <- TAM::tam_remove_missings( dat[ dat$grade==1, ], items=items )
# create some grouping variable
group <- ( seq( 1, nrow( rdat1$dat ) ) %% 3 ) + 1
mod1 <- TAM::tam.mml.2pl( resp=rdat1$resp[, rdat1$items], pid=rdat1$dat$idstud, group=group)
summary(mod1)
# fit grade 2
rdat2 <- TAM::tam_remove_missings( dat[ dat$grade==2, ], items=items )
group <- 1*(rdat2$dat$dat$idstud > 500)
mod2 <- TAM::tam.mml.2pl( resp=rdat2$resp[, rdat2$items], pid=rdat2$dat$dat$idstud, group=group)
summary(mod2)
# fit grade 3
rdat3 <- TAM::tam_remove_missings( dat[ dat$grade==3, ], items=items )
mod3 <- TAM::tam.mml.2pl( resp=rdat3$resp[, rdat3$items], pid=rdat3$dat$idstud )
summary(mod3)
# define list of fitted models
tamobj_list <- list( mod1, mod2, mod3 )
#-- link item response models
lmod <- TAM::tam.linking( tamobj_list)
#############################################################################
# EXAMPLE 4: Linking simulated dichotomous data with two groups
#############################################################################
library(sirt)
#*** simulate data
N <- 3000 # number of persons
I <- 30 # number of items
b <- seq(-2,2, length=I)
# data for group 1
dat1 <- sirt::sim.raschtype( rnorm(N, mean=0, sd=1), b=b )
# data for group 2
dat2 <- sirt::sim.raschtype( rnorm(N, mean=1, sd=.6), b=b )
# fit group 1
mod1 <- TAM::tam.mml.2pl( resp=dat1 )
summary(mod1)
# fit group 2
mod2 <- TAM::tam.mml.2pl( resp=dat2 )
summary(mod2)
# define list of fitted models
tamobj_list <- list( mod1, mod2 )
#-- link item response models
lmod <- TAM::tam.linking( tamobj_list)
summary(lmod)
# estimate WLEs based on transformed item parameters
parm_list <- lmod$parameters_list
# WLE grade 1
arglist <- list( resp=mod1$resp, B=parm_list[[1]]$B, AXsi=parm_list[[1]]$AXsi )
wle1 <- TAM::tam.mml.wle(tamobj=arglist)
# WLE grade 2
arglist <- list( resp=mod2$resp, B=parm_list[[2]]$B, AXsi=parm_list[[2]]$AXsi )
wle2 <- TAM::tam.mml.wle(tamobj=arglist)
summary(wle1)
summary(wle2)
# estimation with linked and fixed item parameters for group 2
B <- parm_list[[2]]$B
xsi.fixed <- cbind( 1:I, -parm_list[[2]]$AXsi[,2] )
mod2f <- TAM::tam.mml( resp=dat2, B=B, xsi.fixed=xsi.fixed )
summary(mod2f)
# }
Run the code above in your browser using DataLab