apollo_combineModels function

Combines separate model components.

Combines separate model components.

Combines model components to create likelihood for overall model.

apollo_combineModels( P, apollo_inputs, functionality, components = NULL, asList = TRUE )

Arguments

  • P: List of vectors, matrices or 3-dim arrays. Likelihood of the model components.

  • apollo_inputs: List grouping most common inputs. Created by function apollo_validateInputs .

  • functionality: 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.
  • components: Character vector. Optional argument. Names of elements in P that should be multiplied to construct the whole model likelihood. If a single element is provided, it is interpreted as a regular expression. Default is to include all components in P.

  • asList: Logical. Only used if functionality is "conditionals","estimate","validate","zero_LL" or "output". If TRUE, it will return a list as described in the 'Value' section. If FALSE, it will only return a vector/matrix/3-dim array of the product of likelihoods inside P. Default is TRUE.

Returns

Argument P with (for most functionalities) an extra element called "model", which is the product of all the other elements. Shape depends on argument functionality.

  • ‘"components"’ : Returns P without changes.
  • ‘"conditionals"’ : Returns P with an extra component called "model", which is the product of all other elements of P.
  • ‘"estimate"’ : Returns P with an extra component called "model", which is the product of all other elements of P.
  • ‘"gradient"’ : Returns P containing the gradient of the likelihood after applying the product rule across model components.
  • ‘"output"’ : Returns P with an extra component called "model", which is the product of all other elements of P.
  • ‘"prediction"’ : Returns P without changes.
  • ‘"preprocess"’ : Returns P without changes.
  • ‘"raw"’ : Returns P without changes.
  • ‘"shares_LL"’ : Returns P with an extra component called "model", which is the product of all other elements of P.
  • ‘"validate"’ : Returns P with an extra component called "model", which is the product of all other elements of P.
  • ‘"zero_LL"’ : Returns P with an extra component called "model", which is the product of all other elements of P.

Details

This function should be called inside apollo_probabilities after all model components have been produced.

It should be called before apollo_avgInterDraws , apollo_avgIntraDraws , apollo_panelProd and apollo_prepareProb , whichever apply, except where these functions are called inside any latent class components of the overall model.

  • Maintainer: Stephane Hess
  • License: GPL-2
  • Last published: 2025-03-12