Preamble
Good question. Computing ability estimates $\hat\theta$ for individuals who were not a part of the calibration (or "training") sample is one of the most common applications of item response theory (IRT) methods. Though this may not be obvious from reading the published literature, as many such applications are documented as technical reports or not published at all. For more information on scoring using IRT methods, I highly recommend Thissen & Wainer (2001).
Answer
Yes it is possible to compute ability estimates using data outside the calibration sample. See the code below, where I simulate two sets of responses to a 100 item scale. First, I estimate item parameters using the sim_data_train
dataset. Then, using the parameter estimates obtained using sim_data_train
, I score the sim_data_scoring
dataset. Finally, I do this using both the ltm
and mirt
packages. Your question concerned the ltm
package, though I also provided mirt
code as it is the most popular R
package for IRT these days.
R code
# Packages
library("mirt")
library("ltm")
set.seed(123) # For reproducibility
# Define the number of students and items
n_students_train <- 400
n_students_score <- 200
n_items <- 100
# Simulate data for training
sim_data_train <- mirt::simdata(a = rep(1,n_items),
d = rep(0, n_items),
itemtype = rep("2PL",n_items),
N = n_students_train)
# Simulate data for scoring
sim_data_scoring <- mirt::simdata(a = rep(1,n_items),
d = rep(0, n_items),
itemtype = rep("2PL",n_items),
N = n_students_score)
# Fit the Rasch model using using the training data via the ltm package
rasch_model_ltm <- ltm::rasch(sim_data_train)
# Scoring using the ltm package
new_student_scores_ltm <- ltm::factor.scores(rasch_model_ltm,
method = "EAP",
resp.patterns = sim_data_scoring)$score.dat
# Fit the Rasch model using the mirt package
rasch_model_mirt <- mirt::mirt(data = sim_data_train,
model = 1,
itemtype = 'Rasch')
# Scoring using the mirt package
new_student_scores_mirt <- mirt::fscores(rasch_model_mirt,
method = "EAP",
response.pattern = sim_data_scoring)
References
Thissen, D., & Wainer, H. (Eds.). (2001). Test scoring. Routledge.
ltm
manual:fittet
"computes the expected frequencies for vectors of response patterns". As far as I understand, it's the methodfactor.scores
that you are looking for. $\endgroup$