I have matrix of dichotomus correct/false answers with many random missing data. (The data comes from an ability test where questions were randomly drawn from an item bank.)
I am trying to find out how well items fit to a Rasch model.
I have tried different packages so far.
eRm - this worked very well with fewer (60) items but now that I am trying to run it with cc.160 items it takes an unbearably long time to complete.
library('mirt')
raschfit <- mirt(data, 1, itemtype='Rasch')
Theta <- fscores(raschfit, method = 'ML', full.scores=TRUE, scores.only=TRUE)
ifit<-itemfit(raschfit, impute = 10, Theta=Theta)
This works but I am afraid that there is so much imputation going on that it would mask bad items. The main reason I believe this is that by calculating a simple item-total correlation I found an item with -0.3. This item was clearly wrong. However when I looked at the statistics produced by mirt itemfit this item never popped up as a particularly wrong one.
library(ltm)
mod <- rasch(keyed_response)
item.fit(mod)
I couldn't figure out how to do this in ltm. The code above doesn't give me any sensible data (all zeros for X^2)
Could somebody suggest me a good method?
mirt
is only going to work well if the $\theta$ estimates are reasonably good. You may want to resort to plausible value imputations instead if the estimates are really that bad, and average over those instead (will require independent runs and averaging over manually, but it's a start). $\endgroup$ – philchalmers Jan 22 '15 at 16:30mirt
package computes this, so maybe look at the source code for help if you need it. $\endgroup$ – philchalmers Apr 2 '15 at 3:01