Estimate item parameters


Estimate IRT item parameters using either ICL, BILOG, or ltm. Provides access to the most widely used options in these programs.


est(resp, model = "2PL", engine = "icl", omitsWrong = FALSE, nqp = 20,
  est.distr = FALSE, nch = 5, a.prior = TRUE, b.prior = FALSE,
  c.prior = TRUE, bilog.defaults = TRUE, rasch = FALSE, = "mymodel")



A matrix of responses: persons as rows, items as columns, entries are either 0 or 1, no missing data


The IRT model: "1PL", "2PL", or "3PL". Default is "2PL".


One of "icl", "bilog", or "ltm". Default is "icl".


If TRUE, all omitted items will be recoded as wrong responses, otherwise they will be treated as missing (default)


Number of quadrature points. Default is 20.


T if the probabilities of the latent distribution are to be estimated, F if a normal distribution is assumed. Default is F. Ignored when engine="ltm".


Number of choices in the original item formulation. Used to determine the prior for the asymptote when engine="bilog", model="3PL", and c.prior=T. Default is 5.


Whether a prior for the item discriminations is used. Ignored when model="1PL" or engine="ltm". Default is T.


Whether a prior for the item difficulties is used. Ignored when engine="ltm". Default is F.


Whether a prior for the asymptotes is used. Ignored when model="1PL" or model="2PL" or engine="ltm". Default is T.


When engine="icl" and a prior is used, use the default priors in BILOG rather than the default priors in ICL. Ignored when engine="ltm". Default is T.


When engine="bilog" and model="1PL" and "rasch"=T, the common value for discriminations is forced to 1, and the sum of the difficulties is 0. When engine="ltm" and model="1PL" and "rasch"=T, the common value for discriminations is forced to 1. Ignored in all other cases. Default is F.

A (short) string used in the names of all files read or written by ICL or BILOG. Default is "mymodel". Change to something else to keep the outputs of ICL of BILOG for further use. Ignored when engine="ltm"


Estimate the parameters of an IRT model defined in the most general case ("3PL") as


where U_{ij} is a binary response given by person i to item j, θ_i is the value of the latent variable ("ability") for person i, a_j is the discrimination parameter for item j, b_j is the difficulty parameter for item j, c_j is the asymptote for item j.

Some authors prefer to represent the model with a logit 1.7a^*_j(θ_i-b_j) rather than a_j(θ_i-b_j). This option has been removed from irtoys as it is not supported by the remaining functions of the package.

In the 2PL model (model="2PL"), all asymptotes c_j are 0. In the 1PL model (model="1PL"), all asymptotes c_j are 0 and the discriminations a_j are equal for all items (and sometimes to 1).

Package irtoys provides a simple common interface to the estimation of item parameters with three different programs. It only accesses the most basic and widely used options in these programs. Each of the three programs has a much wider choice of options and cababilities, and serious users must still learn the corresponding syntax in order to access the advanced features. Even when models are fit "by hand", irtoys may be useful in plotting results, doing comparisons across programs etc.

Estimation of the more complex IRT models (2PL and 3PL) for some "difficult" data sets often has to use prior distributions for the item parameters. irtoys adopts the default behaviour of BILOG: no priors for b in any model, priors for a in the 2PL and 3PL models, priors for c in the 3PL model. This can be overriden by changing the values of a.prior, b.prior, and c.prior.

If priors are used at all, they will be the same for all items. Note that both ICL and BILOG can, at some additional effort, set different priors for any individual item. At default, the common priors are the BILOG defaults: normal(0,2) for b, lognormal (0, 0.5) for a, and beta(20*p+1, 20(1-p)+1) for c; p is 1 over the number of choices in the original item formulations, which can be set with the parameter nch, and is again assumed the same for all items.

When engine="icl" and bilog.defaults=F, any priors used will be the ICL default ones, and based on the 4-parameter beta distribution: beta(1.01, 1.01, -6, 6) for b, beta(1.75, 3, 0, 3) for a, and beta(3.5, 4, 0, 0.5) for c. When engine="ltm", all commands involving priors are ignored.

est only works when some IRT software is installed. Package ltm is automatically loaded. ICL can be downloaded from Alternative links are provided in the help screen for this package. BILOG is commercial software sold by SSI — see for further detail. On Windows, make sure that the executable files (icl.exe for ICL, blm1.exe, blm2.exe, and blm3.exe, for BILOG) are located in directories that are included in the PATH variable.


A list with three elements: est and se are matrices containing the parameter estimates and their standard errors, correspondingly. Each matrix has three columns: [,1] item discrimination a, [,2] item difficulty b, and [,3] asymptote c. For the 1PL and 2PL models, all asymptotes are equal to 0; for the 1PL, the discriminations are all equal but not necessarily equal to 1. The third element, vcm, is a list of variance-covariance matrices for the item parameters. Currently, vcm is only used in function irfPlot. When ICL is used as estimation engine, se and vcm are NULL as ICL does not compute standard errors for the item parameter estimates.


Ivailo Partchev


Bradley A. Hanson (2002), ICL: IRT Command Language.

Dimitris Rizopoulos (2006). ltm: Latent Trait Models under IRT.

M. F. Zimowski, E. Muraki, R. J. Mislevy and R. D. Bock (1996), BILOG–MG. Multiple-Group IRT Analysis and Test Maintenance for Binary Items, SSI Scientific Software International, Chicago, IL.


p.1pl <- est(Scored, model="1PL", engine="ltm")
p.2pl <- est(Scored, model="2PL", engine="ltm")

Want to suggest features or report bugs for Use the GitHub issue tracker. Vote for new features on Trello.

comments powered by Disqus