I am curious whether there is an intuitive way in ltm
package in R
to display person's estimated latent trait after fitting the data to an IRT model.
After install.packages("ltm")
, one can quickly run a two-parameter IRT model with the built-in WIRS
data, which is a 6-item test with 1,005 persons:
library(ltm)
data <- WIRS
two_pl <- ltm(data ~ z1)
The method coef(two_pl)
displays all the item parameters:
Dffclt Dscrmn
Item 1 3.4011395 0.1534064
Item 2 -0.9421221 0.3676923
Item 3 0.8093853 1.7179970
Item 4 1.3689278 1.0101043
Item 5 0.4762685 2.0324137
Item 6 1.6804632 1.3745785
with two_pl$coefficients
one can also display (intercept)
and z1
. I am not familiar with meaning of the former as there is none in the typical formation of 2PL equation, but z1
is the discrimination parameter of items.
(Intercept) z1
Item 1 -0.5217566 0.1534064
Item 2 0.3464111 0.3676923
Item 3 -1.3905215 1.7179970
Item 4 -1.3827598 1.0101043
Item 5 -0.9679746 2.0324137
Item 6 -2.3099285 1.3745785
My question: is it possible to find the estimated theta
parameters for each person in ltm
?
I have checked the documentation, while they have both item.fit
and person.fit
, there is no indication that one can pull out the data of person's latent level trait. In the WIRS
example, it should be a vector/list with 1,005 elements, but I am still not able to find anything like it after fitting the model.
Best Answer
Theta estimation according to the expected response pattern:
Theta estimation according to the real data response pattern: