This package is a playground I built for working on my research projects. It provides objects (Julia structs) and dedicated methods (functions) to deal with psychometric data under the item response theory (IRT) statistical paradigm.
The documentation is still in progress. Nevertheless, some functions have detailed descriptions that can be found in the documentation pages or using the Julia help ?
.
Item
: an immutable containing information about an item (a question in a test), e.g.id::String
the item identifier, and the fieldparameters::AbstractParameter
which accepts a mutable item parameter object (see below).Examinee
: an immutable containing the information about the examinee (the test taker). The fieldlatent::AbstractLatent
accepts a mutable latent variable (see below).AbstractParameters
: an abstract type which, at the moment, has only the abstractAbstractParametersBinary
as subtype. Thus, it works only with binary (dichotomous) responses. The available mutables for the latter areParameters1PL
,Parameters2PL
,Parameters3PL
. They contain the details about the item parameters under the 1-parameter logistic (1PL), 2-parameters logistic (2PL) and 3-parameter logistic (3PL) IRT models, respectively. For example, the objectParameters2PL
has the fields difficultyb::Float64
and discriminationa::Float64
. It is possible to define the Bayesian priors and posterior by assigning multivariate distributions from the packageDistributions
to the fieldsprior::Distributions.MultivariateDistribution
andposterior::Distributions.MultivariateDistribution
.Latent1D
andLatentND
: mutables describing an univariate or multivariate latent variable, respectively. For the univariate case, the fieldval::Float64
holds the estimate of the ability of the examinee, like the item parameters, also the latent variables can have a prior or a posterior, assigning them to the fieldsprior
andposterior
, respectively.Response
: an immutable which holds the information about a binary (correct or incorrect) response, such as the identifier of the examinee who gave the responseexaminee_id::String
, the identifier of the answered itemitem_idx::String
, and the answer starting and ending timesstart_time::Dates.DateTime
andend_time::Dates.DateTime
.
Each of the mentioned structs has a random default factory, callable by using the name of the struct followed by ()
.
Example: Parameters2PL()
generates a set of 2PL item parameters from the product distribution (independent bivariate)
Distributions.Product([
Distributions.LogNormal(0, 0.25),
Distributions.Normal(0, 1)
])
The immutable structs Item
and Examinee
need the identification fields id
and idx
to be randomly generated.
Example: Item(1, "item_1")
generates an operational item with an empty content
description, and a default 1PL item parameter.
- Item characteristic function (ICF):
probability
. - Latent and item information function (IIF) (expected and observed are different for the 3PL model):
item_expected_information
,item_observed_information
,latent_information
. - Likelihood function:
likelihood
,log_likelihood
.