Receives functions or expressions for each functionality so that a user-defined model can interface with Apollo.
apollo_ownModel(ownModel_settings, functionality)
The returned object depends on the value of argument functionality
as follows.
"components"
: Same as "estimate"
"conditionals"
: Same as "estimate"
"estimate"
: vector/matrix/array. Returns the probabilities for the chosen alternative for each observation.
"gradient"
: List containing the likelihood and gradient of the model component.
"output"
: Same as "estimate"
but also writes summary of input data to internal Apollo log.
"prediction"
: List of vectors/matrices/arrays. Returns a list with the probabilities for all alternatives, with an extra element for the probability of the chosen alternative.
"preprocess"
: Returns a list with pre-processed inputs, based on mnl_settings
.
"validate"
: Same as "estimate"
, but it also runs a set of tests to validate the function inputs.
"raw"
: Same as "prediction"
"report"
: Choice overview
"shares_LL"
: vector/matrix/array. Returns the probability of the chosen alternative when only constants are estimated.
"validate"
: Same as "estimate"
"zero_LL"
: vector/matrix/array. Returns the probability of the chosen alternative when all parameters are zero.
List of arguments. Only likelihood is mandatory.
likelihood
: Function or
expression used to calculate the likelihood
of the model. Should evaluate to a vector,
matrix, or 3-dimensional array.
prediction
: Function or
expression used to calculate the prediction
of the model. Should evaluate to a vector,
matrix, or 3-dimensional array.
zero_LL
: Function or
expression used to calculate the likelihood
of the base model (e.g. equiprobable model).
shares_LL
: Function or
expression used to calculate the likelihood
of the constants-only model.
gradient
: Function or
expression used to calculate the gradient
of the likelihood. If not provided, Apollo
will attempt to calculate it automatically.
report
: List of functions or
expressions used to produce a text report
summarising the input and parameter
estimates of the model. Should contain two
elements: "data" (with a summary of the
input data), and "param" (with a summary of
the estimated parameters).
Character. Setting instructing Apollo what processing to apply to the likelihood function. This is in general controlled by the functions that call apollo_probabilities
, though the user can also call apollo_probabilities
manually with a given functionality for testing/debugging. Possible values are:
"components"
: For further processing/debugging, produces likelihood for each model component (if multiple components are present), at the level of individual draws and observations.
"conditionals"
: For conditionals, produces likelihood of the full model, at the level of individual inter-individual draws.
"estimate"
: For model estimation, produces likelihood of the full model, at the level of individual decision-makers, after averaging across draws.
"gradient"
: For model estimation, produces analytical gradients of the likelihood, where possible.
"output"
: Prepares output for post-estimation reporting.
"prediction"
: For model prediction, produces probabilities for individual alternatives and individual model components (if multiple components are present) at the level of an observation, after averaging across draws.
"preprocess"
: Prepares likelihood functions for use in estimation.
"raw"
: For debugging, produces probabilities of all alternatives and individual model components at the level of an observation, at the level of individual draws.
"report"
: Prepares output summarising model and choiceset structure.
"shares_LL"
: Produces overall model likelihood with constants only.
"validate"
: Validates model specification, produces likelihood of the full model, at the level of individual decision-makers, after averaging across draws.
"zero_LL"
: Produces overall model likelihood with all parameters at zero.