Skip to content

voiage.methods.distributional.value_of_distributional_equity

value_of_distributional_equity([positional or keyword] value_array: ValueArray = None, [positional or keyword] subgroups: np.ndarray | list[Any] = None, [positional or keyword] strategy_names: list[str] | None = None, [positional or keyword] equity_weights: np.ndarray | list[float] | dict[str, float] | None = None, [positional or keyword] n_bins: int | None = None) -> DistributionalEquityResult

Calculate distributional and equity-weighted value of heterogeneity.

value_array : ValueArray 2D net-benefit samples with shape (n_samples, n_strategies). subgroups : numpy.ndarray or list[Any] Subgroup label for each sample. strategy_names : list[str], optional Optional strategy labels. equity_weights : sequence or mapping, optional Non-negative subgroup weights used for social-welfare summaries. n_bins : int, optional Number of quantile bins to use when subgroups is numeric.

DistributionalEquityResult Result containing subgroup-specific and equity-weighted summaries.

The subgroup-tailored value is computed from subgroup-specific optimal expected net benefits and compared with the single overall optimal strategy. Equity-weighted welfare is the weighted sum of subgroup mean net benefits:

.. math::

W_d = \sum_g w_g E[NB_{d,g}], \qquad \mathrm{VOH}{eq} = \max\left(0,\sum_g p_g \max_d E[NB{d,g}] - \max_d E[NB_d]\right).

Cookson, R., Griffin, S., Norheim, O. F., & Culyer, A. J. (2021). Distributional cost-effectiveness analysis: Quantifying health equity impacts and trade-offs. Asaria, M., Griffin, S., & Cookson, R. (2016). Distributional cost effectiveness analysis: a tutorial.

>>> import numpy as np >>> from voiage.methods.distributional import value_of_distributional_equity >>> from voiage.schema import ValueArray >>> values = np.array([ … [10.0, 8.0], … [11.0, 7.0], … [6.0, 12.0], … [5.0, 13.0], … ]) >>> result = value_of_distributional_equity( … ValueArray.from_numpy(values, [“A”, “B”]), … subgroups=[“low”, “low”, “high”, “high”], … ) >>> result.social_welfare_value >= 0.0 True

Parameters:

  • value_array ValueArray
  • subgroups np.ndarray | list[Any]
  • strategy_names list[str] | None (default: None)
  • equity_weights np.ndarray | list[float] | dict[str, float] | None (default: None)
  • n_bins int | None (default: None)

Returns: DistributionalEquityResult