Skip to content

voiage.health_economics.HealthEconomicsAnalysis

Comprehensive health economics analysis class.

Integrates with voiage’s VOI analysis to provide specialized health economic evaluations including cost-effectiveness, QALY analysis, and decision making under uncertainty.

add_health_state([positional or keyword] self: None = None, [positional or keyword] health_state: HealthState = None) -> None

Add a health state to the analysis.

Parameters:

  • self
  • health_state HealthState

Returns: None

add_treatment([positional or keyword] self: None = None, [positional or keyword] treatment: Treatment = None) -> None

Add a treatment option to the analysis.

Parameters:

  • self
  • treatment Treatment

Returns: None

calculate_qaly([positional or keyword] self: None = None, [positional or keyword] health_state: HealthState = None, [positional or keyword] discount_rate: float = 0.03, [positional or keyword] time_horizon: float = 10.0) -> float

Calculate Quality-Adjusted Life Years (QALY) for a health state.

Args: health_state: The health state to analyze discount_rate: Annual discount rate for future health benefits time_horizon: Time horizon for analysis in years

QALY value

Parameters:

  • self
  • health_state HealthState
  • discount_rate float (default: 0.03)
  • time_horizon float (default: 10.0)

Returns: float

calculate_cost([positional or keyword] self: None = None, [positional or keyword] health_state: HealthState = None, [positional or keyword] discount_rate: float = 0.03, [positional or keyword] time_horizon: float = 10.0) -> float

Calculate discounted costs for a health state.

Args: health_state: The health state to analyze discount_rate: Annual discount rate for costs time_horizon: Time horizon for analysis in years

Total discounted cost

Parameters:

  • self
  • health_state HealthState
  • discount_rate float (default: 0.03)
  • time_horizon float (default: 10.0)

Returns: float

calculate_icer([positional or keyword] self: None = None, [positional or keyword] treatment1: Treatment = None, [positional or keyword] treatment2: Treatment | None = None, [positional or keyword] health_states1: list[HealthState] | None = None, [positional or keyword] health_states2: list[HealthState] | None = None) -> float

Calculate Incremental Cost-Effectiveness Ratio (ICER).

Args: treatment1: First treatment to compare treatment2: Second treatment (comparator), defaults to standard care health_states1: Health states for treatment1 health_states2: Health states for treatment2

ICER value (cost per QALY gained)

Parameters:

  • self
  • treatment1 Treatment
  • treatment2 Treatment | None (default: None)
  • health_states1 list[HealthState] | None (default: None)
  • health_states2 list[HealthState] | None (default: None)

Returns: float

calculate_net_monetary_benefit([positional or keyword] self: None = None, [positional or keyword] treatment: Treatment = None, [positional or keyword] health_states: list[HealthState] | None = None) -> float

Calculate Net Monetary Benefit (NMB) for a treatment.

Args: treatment: Treatment to analyze health_states: Health states for the treatment

Net Monetary Benefit value

Parameters:

  • self
  • treatment Treatment
  • health_states list[HealthState] | None (default: None)

Returns: float

create_cost_effectiveness_acceptability_curve

Section titled “create_cost_effectiveness_acceptability_curve”
create_cost_effectiveness_acceptability_curve([positional or keyword] self: None = None, [positional or keyword] treatment: Treatment = None, [positional or keyword] health_states: list[HealthState] | None = None, [positional or keyword] wtp_range: tuple[float, float] = (0, 200000), [positional or keyword] num_points: int = 100) -> tuple[jnp.ndarray, jnp.ndarray]

Create Cost-Effectiveness Acceptability Curve (CEAC).

Args: treatment: Treatment to analyze health_states: Health states for the treatment wtp_range: Range of willingness-to-pay values to evaluate num_points: Number of evaluation points

Tuple of (wtp_values, ceac_probabilities)

Parameters:

  • self
  • treatment Treatment
  • health_states list[HealthState] | None (default: None)
  • wtp_range tuple[float, float] (default: (0, 200000))
  • num_points int (default: 100)

Returns: tuple[jnp.ndarray, jnp.ndarray]

budget_impact_analysis([positional or keyword] self: None = None, [positional or keyword] treatment: Treatment = None, [positional or keyword] population_size: int = 100000, [positional or keyword] adoption_rate: float = 0.5, [positional or keyword] time_horizon: int = 5, [positional or keyword] annual_budget: float = 10000000) -> dict[str, float]

Perform budget impact analysis.

Args: treatment: Treatment to analyze population_size: Total target population adoption_rate: Expected adoption rate of new treatment time_horizon: Analysis time horizon in years annual_budget: Available annual budget

Dictionary with budget impact metrics

Parameters:

  • self
  • treatment Treatment
  • population_size int (default: 100000)
  • adoption_rate float (default: 0.5)
  • time_horizon int (default: 5)
  • annual_budget float (default: 10000000)

Returns: dict[str, float]

probabilistic_sensitivity_analysis([positional or keyword] self: None = None, [positional or keyword] treatment: Treatment = None, [positional or keyword] num_simulations: int = 1000, [positional or keyword] utility_uncertainty: float = 0.1, [positional or keyword] cost_uncertainty: float = 0.2) -> dict[str, object]

Perform probabilistic sensitivity analysis (PSA).

Args: treatment: Treatment to analyze num_simulations: Number of Monte Carlo simulations utility_uncertainty: Relative uncertainty in utility values (±%) cost_uncertainty: Relative uncertainty in cost values (±%)

Dictionary with PSA results including distributions and summary statistics

Parameters:

  • self
  • treatment Treatment
  • num_simulations int (default: 1000)
  • utility_uncertainty float (default: 0.1)
  • cost_uncertainty float (default: 0.2)

Returns: dict[str, object]

create_voi_analysis_for_health_decisions([positional or keyword] self: None = None, [positional or keyword] treatments: list[Treatment] = None, [positional or keyword] decision_outcome_function: Callable[..., object] = None, [positional or keyword] additional_parameters: dict[str, object] | None = None) -> DecisionAnalysis

Create VOI analysis specifically for health economic decisions.

Args: treatments: List of treatment options to compare decision_outcome_function: Function that returns outcomes for each treatment additional_parameters: Additional parameters for the analysis

DecisionAnalysis object configured for health economics

Parameters:

  • self
  • treatments list[Treatment]
  • decision_outcome_function Callable[..., object]
  • additional_parameters dict[str, object] | None (default: None)

Returns: DecisionAnalysis