Learn R Programming

irtoys (version 0.2.2)

est: Estimate item parameters

Description

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

Usage

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,
  run.name = "mymodel"
)

Arguments

resp

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

model

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

engine

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

omitsWrong

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

nqp

Number of quadrature points. Default is 20.

est.distr

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".

nch

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.

a.prior

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

b.prior

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

c.prior

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

bilog.defaults

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.

rasch

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.

run.name

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"

Value

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.

Details

Estimate the parameters of an IRT model defined in the most general case ("3PL") as $$P(U_{ij}=1|\theta_i,a_j,b_j,c_j)=c_j+(1-c_j)\frac{\displaystyle\exp(a_j(\theta_i-b_j))}{1+\displaystyle\exp(a_j(\theta_i-b_j))}$$ where \(U_{ij}\) is a binary response given by person \(i\) to item \(j\), \(\theta_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(\theta_i-b_j)\) rather than \(a_j(\theta_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 http://www.openirt.com/b-a-h/software/. BILOG is commercial software sold by SSI --- see https://ssicentral.com/ 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.

Examples

Run this code
# NOT RUN {
p.1pl <- est(Scored, model="1PL", engine="ltm")
p.2pl <- est(Scored, model="2PL", engine="ltm")

# }

Run the code above in your browser using DataLab