#############################################################################
# EXAMPLE 1: Rasch model
#############################################################################
data(data.read, package="sirt")
dat <- data.read
#--- Model 1: Rasch model with JML and epsilon-adjustment
mod1a <- immer::immer_jml(dat)
summary(mod1a)
if (FALSE) {
#- JML estimation, only handling extreme scores
mod1b <- immer::immer_jml( dat, est_method="jml")
summary(mod1b)
#- JML estimation with (I-1)/I bias correction
mod1c <- immer::immer_jml( dat, est_method="jml_bc" )
summary(mod1c)
# compare different estimators
round( cbind( eps=mod1a$xsi, JML=mod1b$xsi, BC=mod1c$xsi ), 2 )
#--- Model 2: LLTM by defining a design matrix for item difficulties
A <- array(0, dim=c(12,1,3) )
A[1:4,1,1] <- 1
A[5:8,1,2] <- 1
A[9:12,1,3] <- 1
mod2 <- immer::immer_jml(dat, A=A)
summary(mod2)
#############################################################################
# EXAMPLE 2: Partial credit model
#############################################################################
library(TAM)
data(data.gpcm, package="TAM")
dat <- data.gpcm
#-- JML estimation in TAM
mod0 <- TAM::tam.jml(resp=dat, bias=FALSE)
summary(mod0)
# extract design matrix
A <- mod0$A
A <- A[,-1,]
#-- JML estimation
mod1 <- immer::immer_jml(dat, A=A, est_method="jml")
summary(mod1)
#-- JML estimation with epsilon-adjusted bias correction
mod2 <- immer::immer_jml(dat, A=A, est_method="eps_adj")
summary(mod2)
#############################################################################
# EXAMPLE 3: Rating scale model with raters | Use design matrix from TAM
#############################################################################
data(data.ratings1, package="sirt")
dat <- data.ratings1
facets <- dat[,"rater", drop=FALSE]
resp <- dat[,paste0("k",1:5)]
#* Model 1: Rating scale model in TAM
formulaA <- ~ item + rater + step
mod1 <- TAM::tam.mml.mfr(resp=resp, facets=facets, formulaA=formulaA,
pid=dat$idstud)
summary(mod1)
#* Model 2: Same model estimated with JML
resp0 <- mod1$resp
A0 <- mod1$A[,-1,]
mod2 <- immer::immer_jml(dat=resp0, A=A0, est_method="eps_adj")
summary(mod2)
}
Run the code above in your browser using DataLab