Calculates the probabilities of a Random Regret Minimisation model and can also perform other operations based on the value of the functionality
argument.
apollo_rrm(rrm_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 rrm_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 inputs of the RRM model. It should contain the following.
alternatives
: Named numeric vector. Names of alternatives and their corresponding value in choiceVar
.
avail
: Named list of numeric vectors or scalars. Availabilities of alternatives, one element per alternative. Names of elements must match those in alternatives
. Values can be 0 or 1. These can be scalars or vectors (of length equal to rows in the database). A user can also specify avail=1
to indicate universal availability, or omit the setting completely.
choiceVar
: Numeric vector. Contains choices for all observations. It will usually be a column from the database. Values are defined in alternatives
.
rum_inputs
: Named list of (optional) deterministic utilities. Utilities of the alternatives to be included in combined RUM-RRM models. Names of elements must match those in alternatives.
regret_inputs
: Named list of regret functions. This should contain one list per attribute, where these lists themselves contain two vectors, namely a vector of attributes (at the alternative level) and parameters (either generic or attribute specific). Zeros can be used for omitted attributes for some alternatives. The order for each attribute needs to be the same as the order in alternatives.
.
regret_scale
: Named list of regret scales. This should have the same length as 'rrm_settings$regret_inputs' or be a single entry in the case of a generic scale parameter across regret attributes.
choiceset_scaling
: Vector. One entry per row in the database, often set to 2 divided by the number of available alternatives.
rows
: Boolean vector. Consideration of which rows to include. Length equal to the number of observations (nObs), with entries equal to TRUE for rows to include, and FALSE for rows to exclude. Default is "all"
, equivalent to rep(TRUE, nObs)
.
componentName
: Character. Name given to model component. If not provided by the user, Apollo will set the name automatically according to the element in P
to which the function output is directed.
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.