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