Skip to content

voiage.cli.calculate_evsi

calculate_evsi([positional or keyword] parameter_file: Path = typer.Argument(..., metavar='PARAMETER_FILE', exists=True, file_okay=True, dir_okay=False, readable=True, help='Path to CSV containing PSA parameters (samples x parameters)'), [positional or keyword] trial_design_file: Path = typer.Argument(..., metavar='TRIAL_DESIGN_FILE', exists=True, file_okay=True, dir_okay=False, readable=True, help="Path to JSON trial design with an 'arms' array"), [positional or keyword] net_benefit_file: Path | None = typer.Option(None, '--net-benefit-file', '-n', exists=True, file_okay=True, dir_okay=False, readable=True, help='CSV net benefits used by the default static model'), [positional or keyword] model: str | None = typer.Option(None, '--model', '-m', help='Dotted path to a callable accepting ParameterSet and returning ValueArray'), [positional or keyword] method: str = typer.Option('two_loop', '--method', help='EVSI method: two_loop, regression, efficient, or moment_based'), [positional or keyword] metamodel: str = typer.Option('linear', '--metamodel', help='Metamodel for efficient EVSI: linear or random_forest'), [positional or keyword] n_outer_loops: int = typer.Option(100, '--n-outer-loops', help='Outer simulations for two_loop/regression EVSI'), [positional or keyword] n_inner_loops: int = typer.Option(1000, '--n-inner-loops', help='Inner simulations for two_loop EVSI'), [positional or keyword] population: float | None = typer.Option(None, '--population', help='Population size for population-adjusted EVSI'), [positional or keyword] discount_rate: float | None = typer.Option(None, '--discount-rate', help='Annual discount rate (e.g., 0.03)'), [positional or keyword] time_horizon: float | None = typer.Option(None, '--time-horizon', help='Time horizon in years'), [positional or keyword] output_file: Path | None = typer.Option(None, '--output', '-o', help='File to save EVSI result')) -> None

Calculate Expected Value of Sample Information (EVSI).

Calculate EVSI from a PSA parameter CSV and a trial design JSON file:

.. code-block:: bash

voiage calculate-evsi parameters.csv trial_design.json

Parameters:

  • parameter_file Path (default: typer.Argument(..., metavar='PARAMETER_FILE', exists=True, file_okay=True, dir_okay=False, readable=True, help='Path to CSV containing PSA parameters (samples x parameters)'))
  • trial_design_file Path (default: typer.Argument(..., metavar='TRIAL_DESIGN_FILE', exists=True, file_okay=True, dir_okay=False, readable=True, help="Path to JSON trial design with an 'arms' array"))
  • net_benefit_file Path | None (default: typer.Option(None, '--net-benefit-file', '-n', exists=True, file_okay=True, dir_okay=False, readable=True, help='CSV net benefits used by the default static model'))
  • model str | None (default: typer.Option(None, '--model', '-m', help='Dotted path to a callable accepting ParameterSet and returning ValueArray'))
  • method str (default: typer.Option('two_loop', '--method', help='EVSI method: two_loop, regression, efficient, or moment_based'))
  • metamodel str (default: typer.Option('linear', '--metamodel', help='Metamodel for efficient EVSI: linear or random_forest'))
  • n_outer_loops int (default: typer.Option(100, '--n-outer-loops', help='Outer simulations for two_loop/regression EVSI'))
  • n_inner_loops int (default: typer.Option(1000, '--n-inner-loops', help='Inner simulations for two_loop EVSI'))
  • population float | None (default: typer.Option(None, '--population', help='Population size for population-adjusted EVSI'))
  • discount_rate float | None (default: typer.Option(None, '--discount-rate', help='Annual discount rate (e.g., 0.03)'))
  • time_horizon float | None (default: typer.Option(None, '--time-horizon', help='Time horizon in years'))
  • output_file Path | None (default: typer.Option(None, '--output', '-o', help='File to save EVSI result'))

Returns: None