Calculates density for a Normal distribution at a specific value with a specified mean and standard deviation and can also perform other operations based on the value of the functionality
argument.
apollo_normalDensity(normalDensity_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 likelihood 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"
: Predicted value at the observation level.
"preprocess"
: Returns a list with pre-processed inputs, based on normalDensity_settings
.
"raw"
: Same as "estimate"
"report"
: Dependent variable overview.
"shares_LL"
: Not implemented. Returns a vector of NA with as many elements as observations.
"validate"
: Same as "estimate"
, but it also runs a set of tests to validate the function inputs.
"zero_LL"
: Not implemented. Returns a vector of NA with as many elements as observations.
List of arguments to the functions. It must contain the following.
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.
mu
: Numeric scalar. Intercept of the linear model.
outcomeNormal
: Numeric vector. Dependent variable.
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)
.
sigma
: Numeric scalar. Variance of error component of linear model to be estimated.
xNormal
: Numeric vector. Single explanatory variable.
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.
This function calculates the probability of the linear model outcomeNormal = mu + xNormal + epsilon, where epsilon is a random error distributed Normal(0,sigma).
If using this function in the context of an Integrated Choice and Latent Variable (ICLV) model with continuous
indicators, then outcomeNormal
would be the value of the indicator, xNormal
would be the value of the latent variable (possibly
multiplied by a parameter to measure its correlation with the indicator, e.g. xNormal=lambda*LV), and mu
would be
an additional parameter to be estimated (the mean of the indicator, which should be fixed to zero if the indicator is
centered around its mean beforehand).