Skip to content

voiage.methods.structural.structural_evpi

structural_evpi([positional or keyword] model_structure_evaluators: list[ModelStructureEvaluator] = None, [positional or keyword] structure_probabilities: np.ndarray | list[float] = None, [positional or keyword] psa_samples_per_structure: list[PSASample] = None, [positional or keyword] population: float | None = None, [positional or keyword] discount_rate: float | None = None, [positional or keyword] time_horizon: float | None = None) -> float

Calculate expected value of perfect information for model structure.

model_structure_evaluators : list[callable] One evaluator per candidate structure. Each evaluator maps a :class:~voiage.schema.ParameterSet to a :class:~voiage.schema.ValueArray. structure_probabilities : numpy.ndarray or list[float] Prior probabilities for each structure. psa_samples_per_structure : list[ParameterSet] PSA samples relevant to each candidate structure. population : float, optional Population size for population scaling. discount_rate : float, optional Annual discount rate used for population scaling. time_horizon : float, optional Time horizon in years for population scaling.

float Structural EVPI on a per-decision basis unless population scaling is requested.

This treats model structure itself as the uncertainty source rather than only parameter values within a single structure.

Parameters:

  • model_structure_evaluators list[ModelStructureEvaluator]
  • structure_probabilities np.ndarray | list[float]
  • psa_samples_per_structure list[PSASample]
  • population float | None (default: None)
  • discount_rate float | None (default: None)
  • time_horizon float | None (default: None)

Returns: float