voiage.methods.distributional.value_of_distributional_equity
value_of_distributional_equity
Section titled “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) -> DistributionalEquityResultCalculate distributional and equity-weighted value of heterogeneity.
Parameters
Section titled “Parameters”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.
Returns
Section titled “Returns”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).
References
Section titled “References”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.
Examples
Section titled “Examples”>>> 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_arrayValueArraysubgroupsnp.ndarray | list[Any]strategy_nameslist[str] | None(default:None)equity_weightsnp.ndarray | list[float] | dict[str, float] | None(default:None)n_binsint | None(default:None)
Returns: DistributionalEquityResult