I am trying to compare mirt and catR scores.
I have a feeling that while their Theta estimates are very similar their Sem estimates are very different. I get strange patterns though for both comparison, and can't figure out why.
library(mirt)
library(mirtCAT)
nitems <- 100
a1 <- rlnorm(nitems, .2,.2)
d <- rnorm(nitems)
mirt.pars <- data.frame(a1=a1, d=d)
mirt.mod <- generate.mirt_object(mirt.pars, '2PL')
itemtype <- rep('2PL', nrow(mirt.pars))
nperson <- 100
dat <- simdata(a1, d, nperson, itemtype)
mirt.scores<-fscores(mirt.mod,response.pattern = dat)
library(catR)
cat.pars<-as.data.frame(coef(mirt.mod , simplify = TRUE, IRTpars = TRUE)$items[,c('a','b')])
cat.pars$d<-1
cat.pars$c<-0
cat.pars=as.matrix(cat.pars)
cat.scores<-
do.call(
rbind, apply(dat, 1, function(x) {
cF1=thetaEst(cat.pars, x)
cSem=semTheta(cF1, cat.pars)
data.frame(cF1=cF1, cSem=cSem)
})
)
all.scores<-cbind(mirt.scores,cat.scores)
plot(all.scores$F1, all.scores$cF1)
plot(all.scores$SE_F1, all.scores$cSem)