Implementing nominal model from Polytomous Item Response Theory

I am attempting to map out the probabilities of observing different categories given different person ability using the Nominal Model. From the handbook of Polymous Item Response Theory 2010, the probability of responding in category $k$ given ability $\theta$ and item parameters $a$ and $b$ for item $i$ is:

$$P_{ik}(u=k|\theta;\textbf{a, b})={\exp(a_k\theta+b_k)}/{\sum_i \exp(a_i\theta+b_i)}$$

This model should be variable in person ability $\theta$. However, it does not seem to make a difference if I change $\theta$ in my R code. I am not sure if this seems a poor fit for CV. I thought it might be a theoretical error on my part.

Here is my R code:

pnom <- function(theta, a, b) exp(a*theta+b)/sum(exp(a*theta+b))

pnom(2,c(1,1),c(-1,1))
[1] 0.1192029 0.8807971
pnom(1,c(1,1),c(-1,1))
[1] 0.1192029 0.8807971


The $a$ and $b$ parameters likely don't function the way you would think. Specifically, the $a$s are not really discrimination parameters in the sense of the usual IRT dichotomous/graded response models, but instead represent the parameter ordering. Under Bock's (1972) original formulation, both sets of parameters were constrained to sum to 1 for proper identification and interpretation, so some of the $a$s will necessarily have to be negative as well as the $b$s. Lower values of $a$ represent lower categories (where the rank of the values indicate the empirical ordering), while lower values of $b$ represent the relative 'easiness' of the category to select.

What you've presented here is two response category that have exactly the same ordering (neither one is theoretically higher than the other) since both the $a$ and $b$ are the same. Try changing the value of the parameters to see what happens, but try to do so under the $\sum_k a_k = 1$ and $\sum_k b_k = 1$ constraints (not required for plots of course, but good to think about to see how real data would behave).

For a quick interactive graphical representation already available, you could always check out the shiny interface that ships with the mirt package. Simply put the following in R:

library(mirt)
itemplot(shiny=TRUE)


Then select the nominal itemtype from the drop down menu, and click the checkbox to use the traditional IRT metric. Play around after that with the parameter values sliders to see what happens to the output plots. Hope that helps.

References

Bock, R. D. Estimating item parameters and latent ability when the responses are scored in two or more nominal categories Psychometrika, 1972, 37, 29-51.

• Thanks this is helpful though looking at Mellenbergh, 1995 APM it seems you can get away with setting the $a_1=b_1=0$ and still have identification while dropping the other constraints which might aid in comparison between the 2PL and the nominal model! Cheers! – Francis Smart Jul 7 '14 at 10:56
• That's very true, and is the route that I tend to prefer when estimating these models (plus, it allows for multidimensional nominal models as well, if reparameterized correctly). However, you do have to be careful which $a$ and $b$ are set to zero since it can cause very large estimates of the other parameters in empirical applications (which causes numerical issues quickly). But since the nominal model is usually exploratory in nature, it usually doesn't pose too much of an issue. Cheers. – philchalmers Jul 7 '14 at 15:15