grm: Graded Response Model - Polytomous IRT

grmR Documentation

Graded Response Model - Polytomous IRT


Fits the Graded Response model for ordinal polytomous data, under the Item Response Theory approach.


grm(data, constrained = FALSE, IRT.param = TRUE, Hessian = FALSE, 
    start.val = NULL, na.action = NULL, control = list())



a data.frame (that will be converted to a numeric matrix using data.matrix()) or a numeric matrix of manifest variables.


logical; if TRUE the model with equal discrimination parameters across items is fitted. See Examples for more info.


logical; if TRUE then the coefficients' estimates are reported under the usual IRT parameterization. See Details for more info.


logical; if TRUE the Hessian matrix is computed.


a list of starting values or the character string "random". If a list, each one of its elements corresponds to each item and should contain a numeric vector with initial values for the extremity parameters and discrimination parameter; even if constrained = TRUE the discrimination parameter should be provided for all the items. If "random" random starting values are computed.


the na.action to be used on data; default NULL the model uses the available cases, i.e., it takes into account the observed part of sample units with missing values (valid under MAR mechanisms if the model is correctly specified)..


a list of control values,


the number of quasi-Newton iterations. Default 150.


the number of Gauss-Hermite quadrature points. Default 21.


the optimization method to be used in optim(). Default "BFGS".


logical; if TRUE info about the optimization procedure are printed.


numeric value indicating the number of digits used in abbreviating the Item's names. Default 6.


The Graded Response Model is a type of polytomous IRT model, specifically designed for ordinal manifest variables. This model was first discussed by Samejima (1969) and it is mainly used in cases where the assumption of ordinal levels of response options is plausible.

The model is defined as follows

logit(γ_ik) = beta_i z - beta_ik,

where γ_{ik} denotes the cumulative probability of a response in category kth or lower to the ith item, given the latent ability z. If constrained = TRUE it is assumed that β_i = β for all i.

If IRT.param = TRUE, then the parameters estimates are reported under the usual IRT parameterization, i.e.,

logit (γ_ik) = beta_i (z - beta_ik^*),

where beta_ik^* = beta_ik / beta_i.

The fit of the model is based on approximate marginal Maximum Likelihood, using the Gauss-Hermite quadrature rule for the approximation of the required integrals.


An object of class grm with components,


a named list with components the parameter values at convergence for each item. These are always the estimates of beta_ik, beta_i parameters, even if IRT.param = TRUE.


the log-likelihood value at convergence.


the convergence identifier returned by optim().


the approximate Hessian matrix at convergence returned by optim(); returned only if Hessian = TRUE.


the number of function and gradient evaluations used by the quasi-Newton algorithm.


a list with two components: (i) X: a numeric matrix that contains the observed response patterns, and (ii) obs: a numeric vector that contains the observed frequencies for each observed response pattern.


a list with two components used in the Gauss-Hermite rule: (i) Z: a numeric matrix that contains the abscissas, and (ii) GHw: a numeric vector that contains the corresponding weights.

the maximum absolute value of the score vector at convergence.


the value of the constrained argument.


the value of the IRT.param argument.


a copy of the response data matrix.


the values used in the control argument.


the value of the na.action argument.


the matched call.


In case the Hessian matrix at convergence is not positive definite try to re-fit the model, using start.val = "random".


grm() returns the parameter estimates such that the discrimination parameter for the first item beta_1 is positive.

When the coefficients' estimates are reported under the usual IRT parameterization (i.e., IRT.param = TRUE), their standard errors are calculated using the Delta method.

grm() can also handle binary items, which should be coded as ‘1, 2’ instead of ‘0, 1’.

Some parts of the code used for the calculation of the log-likelihood and the score vector have been based on polr() from package MASS.


Dimitris Rizopoulos


Baker, F. and Kim, S-H. (2004) Item Response Theory, 2nd ed. New York: Marcel Dekker.

Samejima, F. (1969). Estimation of latent ability using a response pattern of graded scores. Psychometrika Monograph Supplement, 34, 100–114.

Rizopoulos, D. (2006) ltm: An R package for latent variable modelling and item response theory analyses. Journal of Statistical Software, 17(5), 1–25. URL doi: 10.18637/jss.v017.i05

See Also

coef.grm, fitted.grm, summary.grm, anova.grm, plot.grm, vcov.grm, margins, factor.scores


## The Graded Response model for the Science data:

## The Graded Response model for the Science data,
## assuming equal discrimination parameters across items:
grm(Science[c(1,3,4,7)], constrained = TRUE)

## The Graded Response model for the Environment data

ltm documentation built on March 18, 2022, 6:36 p.m.