0

I'm fitting a Partial Credit Model (PCM) with ltm package.

Suppose, my data contains 3 items each scored 1, 2 or 3, like this one:

my_data<-data.frame(   
  X1 = c(1,1,3,1,1,3,1,3,1,1,3,3,3,3,3,3,3,3,1,3,3,3,3,1,1,3,3,3,3,3,3,3,3,1,3,3,3,1,1,3),  
  X2 = c(1,1,2,3,2,3,2,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3,3,3,2,2,2,2,2,2,2,2,3,2,1,1),
  X3 = c(2,1,2,2,3,3,2,3,1,2,1,1,1,3,2,2,1,1,1,2,3,1,3,3,2,3,1,2,1,1,1,3,2,2,1,1,1,2,2,1)
 ) 

But it happened that no one have chosen option 2 in the first item:

lapply(my_data, table)
$X1

 1  3 
13 27 

$X2

 1  2  3 
 4 20 16 

$X3

 1  2  3 
17 14  9 

Now, when I run ltm::gpcm() to fit the model and factor.scores() to examine person abilities, I get the following output:

library('ltm')
fit<-gpcm(my_data, constraint='rasch')
factor.scores(fit)

Call:
gpcm(data = my_data, constraint = "rasch")

Scoring Method: Empirical Bayes

Factor-Scores for observed response patterns:
   X1 X2 X3 Obs   Exp     z1 se.z1
1   1  1  1   1 1.578 -1.414 0.744
2   1  1  2   2 0.486 -0.880 0.718
3   1  2  1   1 4.228 -0.880 0.718
4   1  2  2   3 2.209 -0.379 0.700
5   1  2  3   1 0.787  0.104 0.694
6   1  3  1   1 1.546 -0.379 0.700
7   1  3  2   3 1.343  0.104 0.694
8   1  3  3   1 0.793  0.591 0.705
9   2  1  1   1 1.159 -0.880 0.718
10  2  2  1   8 5.267 -0.379 0.700
11  2  2  2   5 4.573  0.104 0.694
12  2  2  3   2 2.701  0.591 0.705
13  2  3  1   5 3.201  0.104 0.694
14  2  3  2   1 4.607  0.591 0.705
15  2  3  3   5 4.597  1.107 0.737

It looks like X1 is treated like it had two possible responses: "1" and "2", not "1" and "3"!

Is there any way to inlude unobserved response "2" for X1?

Why this is important? It's all about scoring. Look at lines 2 and 9 above:

  • Line 2 is espondent, who scored 1, 1 and 2 (respectively on X1, X2 and X3).
  • Line 9 is respondent who scored 3, 1, 1 (since X1=3 in original dataset is recoded to X1=2 by ltm package)

Those two people have:

  • exatly the same person-ability score assigned (column z1),
  • different raw scores (4 and 5, respectively),

which should not happen.

To be precise: I understand why this happens. My question is how to overcome such behaviour?

Łukasz Deryło
  • 1,819
  • 1
  • 16
  • 32

0 Answers0