Solved – Mixing dichotomous and polytomous items in one test

item-response-theory

I have to evaluate a test paper which contains both dichotomous and polytomous items. I am currently using R. But in R IRT models for scoring of dichotomous and polytomous items are different and I have not found any way of combining both type of items so how can I mix both dichotomous and polytomous items into one. Specifically –

  1. Is there any programme/function in R that handles both dichotomous and polytomous items
  2. If no direct function can combine both dichotomous and polytomous items in R then is there any indirect way of doing it
  3. If not 1 and 2 then any other open source IRT software which can handle dichotomous and polytomous items together

Best Answer

Yes, there are several: eRm, mirt, ltm etc. In fact, most IRT models can handle dichotomous items as a special case of polytomous items. E.g. in ltm, you can use grm on polytomous and dichotomous items:

R> library(ltm)
R> data(Science)
R> summary(Science)

We see the Science data are polytomous (4-levels). Let's first fit the graded response model to the original items

R> mpol<-grm(Science[c(1,3,4,7)])
R> summary(mpol)Call:
R> grm(data = Science[c(1, 3, 4, 7)])

Model Summary:
   log.Lik      AIC      BIC
 -1608.871 3249.742 3313.282

Coefficients:
$Comfort
         value
Extrmt1 -4.672
Extrmt2 -2.536
Extrmt3  1.408
Dscrmn   1.041

$Work
         value
Extrmt1 -2.385
Extrmt2 -0.735
Extrmt3  1.849
Dscrmn   1.226

$Future
         value
Extrmt1 -2.281
Extrmt2 -0.965
Extrmt3  0.856
Dscrmn   2.299

$Benefit
         value
Extrmt1 -3.060
Extrmt2 -0.906
Extrmt3  1.543
Dscrmn   1.094


Integration:
method: Gauss-Hermite
quadrature points: 21 

Optimization:
Convergence: 0 
max(|grad|): 0.0092 
quasi-Newton: BFGS 

Now I will dichotomize the first item, Comfort, like so

R> Science2<-Science
R> levels(Science2$Comfort)<-c("negative","negative","positive","positive")
R> summary(Science2)

We see now that the first item has levels "strongly disagree" and "disagree" combined into "negative" and "strongly agree" and "agree" combined into "positive".

R> mmixed<-grm(Science2[c(1,3,4,7)])
R> summary(mmixed)

Call:
grm(data = Science2[c(1, 3, 4, 7)])

Model Summary:
   log.Lik      AIC      BIC
 -1411.065 2850.129 2905.727

Coefficients:
$Comfort
         value
Extrmt1 -3.261
Dscrmn   0.762

$Work
         value
Extrmt1 -2.455
Extrmt2 -0.750
Extrmt3  1.900
Dscrmn   1.176

$Future
         value
Extrmt1 -2.076
Extrmt2 -0.887
Extrmt3  0.787
Dscrmn   3.086

$Benefit
         value
Extrmt1 -3.468
Extrmt2 -1.020
Extrmt3  1.737
Dscrmn   0.927


Integration:
method: Gauss-Hermite
quadrature points: 21 

Optimization:
Convergence: 0 
max(|grad|): 0.057 
quasi-Newton: BFGS 

So, you see, this is possible for all packages that support polytomous items. See sections 2.1. to 2.4. in this review on IRT packages in R.