biogeme.model_elements.model_elements module

class biogeme.model_elements.model_elements.ModelElements(expressions, use_jit, adapter, number_of_draws=None, draws_management=None, user_defined_draws=None, expressions_registry=None)[source]

Bases: object

Container for all key components required to define and estimate a model, using an adapter-based design.

Parameters:
  • expressions (dict[str, Expression]) – Dict of expressions to be evaluated.

  • use_jit (bool) – Whether to use just-in-time compilation from Jax.

  • adapter (ModelElementsAdapter) – Adapter implementing the model elements interface.

  • number_of_draws (int | None) – Number of Monte Carlo draws.

  • draws_management (DrawsManagement | None) – Optional object managing the draws.

  • user_defined_draws (dict[str, RandomNumberGeneratorTuple] | None) – dict with user defined draw generators.

  • expressions_registry (ExpressionRegistry | None) – Optional expressions registry.

audit()[source]

Audit the model elements

Return type:

AuditTuple

property database: Database
property draws_management: DrawsManagement
property expressions_registry: ExpressionRegistry
property formula_names: list[str]
property free_betas_names: list[str]

Returns the names of the parameters that must be estimated

Returns:

list of names of the parameters

Return type:

list(str)

classmethod from_expression_and_weight(log_like, adapter, use_jit, weight=None, number_of_draws=0, draws_management=None, user_defined_draws=None)[source]

Alternative constructor for two expressions.

Parameters:
  • log_like (Expression) – Expression for the log-likelihood.

  • weight (Expression | None) – Expression for the weight.

  • use_jit (bool) – use just-in-time compilation from Jax

  • adapter (ModelElementsAdapter) – Adapter implementing the model elements interface.

  • number_of_draws (int) – Number of Monte Carlo draws.

  • draws_management (DrawsManagement | None) – Optional object managing the draws.

  • user_defined_draws (dict[str, RandomNumberGeneratorTuple] | None) – dict with user defined draw generators.

Return type:

ModelElements

generate_named_output(function_output)[source]

Assigns parameter name to the entries of the gradient and the hessian

Return type:

NamedFunctionOutput

Parameters:

function_output (FunctionOutput)

property loglikelihood: Expression | None
loglikelihood_name: str = 'log_like'
property number_of_observations: int
on_database_update(updated_index)[source]

Update the draws object to remain consistent with the new database

Parameters:

updated_index (Index)

property sample_size: int
property weight: Expression | None
weight_name: str = 'weight'