Change in mean health, EDE health and Atkinson index of a programme against its comparator

Takes the mean health and the equally distributed equivalent health of the programme's distribution and of the comparator's, both at the same inequality aversion epsilon from the live records HE-FM-ATK-002 or HE-FM-ATK-003, or HE-CF-ATK-001 for groups of unequal size, and returns the change in mean health, the change in EDE health per person and across the population, the change in the inequality cost and the change in the Atkinson index. The inequality cost is mean health less EDE health, the health per person that a decision maker with that aversion would give up for full equality, so the change in EDE equals the change in mean health less the change in the inequality cost. A positive change in EDE health means the programme is preferred to the comparator at that epsilon. Each Atkinson index is HE-FM-ATK-001, and only the difference between the two is new here.

Signature

d_mu = mu_1 - mu_0; d_EDE = EDE_1 - EDE_0; d_P = d_mu - d_EDE; dEDE_pop = N_pop * d_EDE; d_A = (1 - EDE_1 / mu_1) - (1 - EDE_0 / mu_0)
Inputs
InputsDefinitionUnit
mu_1Population-weighted mean health per person of the programme's distributionyears of QALE per person
mu_0Population-weighted mean health per person of the comparator's distributionyears of QALE per person
EDE_1Equally distributed equivalent health of the programme's distribution at the chosen epsilon, from HE-CF-ATK-001years of QALE per person
EDE_0Equally distributed equivalent health of the comparator's distribution at the same epsilonyears of QALE per person
N_popNumber of people in the general population that both distributions describepersons
Output
d_muMean health per person under the programme less that under the comparatoryears of QALE per person
d_EDEEDE health under the programme less EDE health under the comparator at the same epsilonyears of QALE per person
d_PChange in mean health less EDE health, positive when the programme raises the health per person that would be given up for full equalityyears of QALE per person
dEDE_popChange in EDE health per person multiplied by the number of people, positive when the programme is preferred at that epsilonEDE QALYs
d_AAtkinson index of the programme less that of the comparator at the same epsilon, positive when relative inequality widensproportion, without unit

Function

Distributional cost-effectiveness comparison of options by social group function

Maps each social group's baseline health, its QALY gain from a programme, its share of the health opportunity cost and its size, together with a chosen inequality aversion, to the group's health under the programme, the change in equally distributed equivalent (EDE) health and in the Atkinson index against the comparator, the programme's quadrant on the equity-efficiency impact plane, and the inequality aversion at which two options give equal EDE health. The health opportunity cost of the incremental cost is the live record HE-FM-CET-002, and the EDE and Atkinson index of each distribution are the live records HE-FM-ATK-002, HE-FM-ATK-003, HE-CF-ATK-001 and HE-FM-ATK-001, which are cited here and not redrafted. Other inequality indices for grouped data, such as the absolute gap and the concentration index, are in HE-FN-HINQ-001, and direct equity weights on QALY gains are in HE-FN-EQWA-001. The two-group closed approximation to the switching aversion belongs to the equity-efficiency trade-off package, while the computational function here solves the EDE comparison itself for any number of groups. Notation follows the Distributional Cost-Effectiveness article.

Computational function

  • Computational function for the critical inequality aversion at which two options give equal EDE health

    Takes the population share and the health per person of each social group under two options, such as a programme and its comparator from HE-FM-DCEA-001, and a bracket of inequality aversion values, and returns by bisection the Atkinson epsilon at which the two options give equal EDE health, the point where the change in EDE health of HE-FM-DCEA-002 changes sign. At each step it evaluates the share-weighted EDE of HE-CF-ATK-001 for both options at the midpoint of the bracket, keeps the half in which the difference changes sign and stops when the bracket is narrower than the tolerance, for any number of groups. The two-group closed approximation in the equity-efficiency trade-off package gives about 11.77 for the article's example, while solving the EDE comparison gives about 11.76, the value the article reports. The Math / Code line evaluates the difference for two groups at a given epsilon, the quantity bisection drives to zero, and the Excel, R and Python versions run the search.

    Inputs and outputs: s_1 and s_2 are the population shares of the groups, required, above zero and adding to 1 (the R and Python versions divide by the total); hA_1 and hA_2 are health per person under option A, required, above zero, in years of QALE; hB_1 and hB_2 are health per person under option B; epsilon is the Atkinson inequality aversion at which the difference is evaluated, zero or above and not equal to 1 in the calculator line; N_pop is the population; E_A and E_B are the EDE health of each option in years per person; D is E_A less E_B per person and D_pop the same across the population in EDE QALYs. In the R and Python versions lo and hi bound the search, tol is the tolerance on epsilon and the output eps_star is the critical inequality aversion, or NA (None in Python) when D has the same sign at both ends of the bracket.

    Assumption: D changes sign once within the bracket, as in the article's example, where funding gains total health and widens inequality. Bisection returns only one root when there are several, so D is checked on a coarse grid across the bracket before the search, a step the code below leaves to the analyst. Every health value is above zero, and the geometric mean of HE-FM-ATK-003 replaces the power mean at epsilon of 1.

    Worked example (Article's programme with equal sharing): With funding giving 63.996 and 72.016 years and not funding 64 and 72, in two equal groups of an area of 100,000 people, bisection on a bracket with ends 0 and 30 returns about 11.7557. At that value, shown to four decimals, the two EDEs differ by about 0.0003 EDE QALYs across the area, against 600 at epsilon of 0. s_1 = 0.5; s_2 = 0.5; hA_1 = 63.996; hA_2 = 72.016; hB_1 = 64; hB_2 = 72; epsilon = 11.7557; N_pop = 100000; E_A = 66.703089; E_B = 66.703089; D = -0.000000003; D_pop = -0.0003

    Worked example (Article's programme with the 60% gradient): With funding giving 63.9936 and 72.0184 years, the same search returns about 8.9526, against about 8.97 from the two-group approximation. s_1 = 0.5; s_2 = 0.5; hA_1 = 63.9936; hA_2 = 72.0184; hB_1 = 64; hB_2 = 72; epsilon = 8.9526; N_pop = 100000; E_A = 66.984446; E_B = 66.984446; D = -0.000000015; D_pop = -0.0015

    Worked example (No inequality aversion at the lower end of the bracket): At epsilon of 0 each EDE is the mean, and the difference is the 600 QALYs of total net health benefit, positive, while at the upper end of 30 it is negative, so the bracket contains the root. s_1 = 0.5; s_2 = 0.5; hA_1 = 63.996; hA_2 = 72.016; hB_1 = 64; hB_2 = 72; epsilon = 0; N_pop = 100000; E_A = 68.006; E_B = 68; D = 0.006; D_pop = 600

    Excel: With one row per group in ranges named GroupShare, HealthOptionA and HealthOptionB, the shares adding to 1, and the bracket ends in cells named BracketLow and BracketHigh, a helper table holds the lower end in column A, the upper end in column B, the midpoint in column C and the difference in column D. Row 2 has =BracketLow, =BracketHigh, =(A2+B2)/2 and =SUMPRODUCT(GroupShare,HealthOptionA^(1-C2))^(1/(1-C2))-SUMPRODUCT(GroupShare,HealthOptionB^(1-C2))^(1/(1-C2)), and row 3 has =IF(SIGN(D2)=SIGN(DiffAtLow),C2,A2) and =IF(SIGN(D2)=SIGN(DiffAtLow),B2,C2) in columns A and B with the formulas of columns C and D copied down from row 2, where DiffAtLow holds the same difference at BracketLow. Row 3 is then copied down to row 41, and after these 40 rows the last midpoint, held in CritEpsilon, is within about 1E-10 of the root for a bracket 30 wide. The table has no geometric-mean branch, so a midpoint of exactly 1 would return #DIV/0!, which never happens with bracket ends 0 and 30. The table uses classic functions only.

    R: crit_eps <- function(s, hA, hB, lo = 0, hi = 30, tol = 1e-10) { s <- s/sum(s); ede <- function(h, e) if (abs(1-e) < 1e-9) exp(sum(s*log(h))) else sum(s*h^(1-e))^(1/(1-e)); f <- function(e) ede(hA, e)-ede(hB, e); fl <- f(lo); if (fl*f(hi) > 0) return(NA); while (hi-lo > tol) { m <- (lo+hi)/2; fm <- f(m); if (sign(fm) == sign(fl)) { lo <- m; fl <- fm } else hi <- m }; (lo+hi)/2 } Takes vectors with one element per group, so crit_eps(c(0.5, 0.5), c(63.996, 72.016), c(64, 72)) returns about 11.7557.

    Python: def crit_eps(s, hA, hB, lo=0.0, hi=30.0, tol=1e-10): t = sum(s); w = [x/t for x in s]; ede = lambda h, e: math.exp(sum(a*math.log(b) for a, b in zip(w, h))) if abs(1-e) < 1e-9 else sum(a*b**(1-e) for a, b in zip(w, h))**(1/(1-e)); f = lambda e: ede(hA, e)-ede(hB, e); return None if f(lo)*f(hi) > 0 else _bisect(f, lo, hi, tol) with the helper def _bisect(f, lo, hi, tol): m = (lo+hi)/2; return m if hi-lo <= tol else (_bisect(f, m, hi, tol) if (f(m) > 0) == (f(lo) > 0) else _bisect(f, lo, m, tol)). Needs import math only, takes lists with one element per group and returns None when D has the same sign at both ends of the bracket.

    Test (Critical aversion gives equal EDE health): Entering the returned value in the difference formula gives a difference within 1E-9 years per person. Expected result TRUE. FALSE shows a search stopped after too few halvings, about 3E-6 years after 10, or a reversed sign test, which in the article's example settles at 15, where the difference is about minus 111 EDE QALYs. Excel check =ABS(SUMPRODUCT(GroupShare,HealthOptionA^(1-CritEpsilon))^(1/(1-CritEpsilon))-SUMPRODUCT(GroupShare,HealthOptionB^(1-CritEpsilon))^(1/(1-CritEpsilon)))<1E-9

    Test (Article's switching values reproduced): With the results for equal sharing in CritEpsilonEqual and for the gradient in CritEpsilonGradient, both round to the article's 11.76 and 8.95. Expected result TRUE. FALSE shows the two-group approximations of 11.77 and 8.97 entered in place of the solved values. Excel check =AND(ROUND(CritEpsilonEqual,2)=11.76,ROUND(CritEpsilonGradient,2)=8.95)

    Common error (Searching a bracket in which the difference does not change sign): With the upper end set to 10 for the article's equal-sharing case, the difference is positive at both ends, about 600 and 71.4 EDE QALYs, and a search that skips the end check returns 10 as if it were the switching value. The function returns NA in that case, and the bracket is widened.

    Source: Asaria M, Griffin S, Cookson R. Distributional cost-effectiveness analysis: a tutorial. Medical Decision Making. 2016;36(1):8-19. Section Analyzing tradeoffs between total health and health inequality using social welfare indices, with the Atkinson EDE formula and Figure 4, which plots the difference in EDE health between two strategies across levels of inequality aversion and reads off the level above which the other strategy is preferred. Press WH, Teukolsky SA, Vetterling WT, Flannery BP. Numerical Recipes, the art of scientific computing. 3rd ed. Cambridge, Cambridge University Press, 2007. Section 9.1 Bracketing and Bisection.

    E_A = (s_1 * hA_1^(1 - epsilon) + s_2 * hA_2^(1 - epsilon))^(1 / (1 - epsilon)); E_B = (s_1 * hB_1^(1 - epsilon) + s_2 * hB_2^(1 - epsilon))^(1 / (1 - epsilon)); D = E_A - E_B; D_pop = N_pop * D

Try this function

Implementations

  • Excel

    Change in EDE health and Atkinson index from named cells

    With MeanOption, MeanComparator, EDEOption and EDEComparator taken from HE-CF-ATK-001 at the same Epsilon, and the population in PopulationSize, the first formula returns the population change in EDE health, held in a cell named PopEDEChange, and the second the change in the Atkinson index.

    =(EDEOption-EDEComparator)*PopulationSize; =(1-EDEOption/MeanOption)-(1-EDEComparator/MeanComparator)

Assumptions

  • Programme and comparator EDE at the same inequality aversion

    Both EDEs use one epsilon, so their difference is a change in social welfare under one value judgement. Results are shown across a range of epsilon, as in Figure 4 of the DCEA tutorial, because the ranking can reverse as epsilon rises.

  • Same population and groups for both distributions in a DCEA comparison

    The two distributions cover the same people in the same groups with the same population shares, so N_pop and the group weights are common to both. EDE health is computed from levels of health such as QALE, every value above zero, and never from net health changes.

  • Distributions hold only unfair variation before the EDE is taken

    Variation judged fair, such as differences by sex in the tutorial, is removed before the EDE is computed, for example by direct standardisation. A different fairness judgement can give the same programme a different change in EDE health.

Worked examples

  • Article's programme at an inequality aversion of 2 with equal sharing

    At epsilon of 2 the EDE of two equal-sized groups is their harmonic mean, about 67.764706 years at baseline and 67.769549 years with funding and equal sharing. EDE health rises by 0.004843 years per person, 484.3 EDE QALYs across 100,000 people, against 600 QALYs of total health, and the Atkinson index rises by about 0.0000167, so relative inequality widens slightly.

    mu_0 = 68; mu_1 = 68.006; EDE_0 = 67.764706; EDE_1 = 67.769549; N_pop = 100000; d_mu = 0.006; d_EDE = 0.004843; d_P = 0.001157; dEDE_pop = 484.3; d_A = 0.0000167
  • Article's programme at the English median aversion with equal sharing

    At epsilon of 10.95, the public estimate cited in the tutorial's case study, EDE health rises from about 66.781476 to 66.781794 years, or 31.8 EDE QALYs across the area, so funding is still preferred when the displaced care is shared equally.

    mu_0 = 68; mu_1 = 68.006; EDE_0 = 66.781476; EDE_1 = 66.781794; N_pop = 100000; d_mu = 0.006; d_EDE = 0.000318; d_P = 0.005682; dEDE_pop = 31.8; d_A = 0.0000820
  • Article's programme at the English median aversion with the 60% gradient

    When the more deprived group bears 60% of the displaced health, EDE health at epsilon of 10.95 falls to about 66.780405 years, or minus 107.1 EDE QALYs across the area, so not funding is preferred at that aversion.

    mu_0 = 68; mu_1 = 68.006; EDE_0 = 66.781476; EDE_1 = 66.780405; N_pop = 100000; d_mu = 0.006; d_EDE = -0.001071; d_P = 0.007071; dEDE_pop = -107.1; d_A = 0.0001024
  • Zero inequality aversion where EDE health equals mean health

    With epsilon of 0 each EDE equals its mean, so the population change in EDE health equals the 600 QALYs of total net health benefit and neither the inequality cost nor the Atkinson index changes. This limiting case checks the link to HE-FM-DCEA-001.

    mu_0 = 68; mu_1 = 68.006; EDE_0 = 68; EDE_1 = 68.006; N_pop = 100000; d_mu = 0.006; d_EDE = 0.006; d_P = 0; dEDE_pop = 600; d_A = 0

Common errors

  • Applying the EDE formula to net health changes instead of health levels

    The harmonic mean of the article's per-person changes of minus 0.004 and 0.016 years is about minus 0.0107 years, a figure with no meaning, because the EDE needs positive levels of health. The change in EDE health is the EDE of the programme's distribution less the EDE of the comparator's.

  • Setting the per-person change in EDE health against a population total

    At epsilon of 2 the change of 0.004843 years per person is 484.3 EDE QALYs across 100,000 people. Setting the per-person figure beside the 600 QALYs of total net health benefit suggests that inequality absorbs almost all the gain, when the inequality cost takes about 19% of it.

Sources

  • Asaria and colleagues on comparing EDE health between strategies

    Asaria M, Griffin S, Cookson R. Distributional cost-effectiveness analysis: a tutorial. Medical Decision Making. 2016;36(1):8-19. Section Analyzing tradeoffs between total health and health inequality using social welfare indices, which gives the Atkinson EDE with inequality aversion epsilon, states that with zero inequality aversion the EDE is mean health, reads mean less EDE health as the health per person one would sacrifice for full equality, and plots the difference in EDE health between two strategies across levels of inequality aversion in Figure 4. Section Comparing interventions in terms of total health and unfair health inequality, which compares total health and one or more inequality indices between an intervention and a comparator, and section Adjusting for social value judgments about fair and unfair sources of inequality, on direct standardisation.

    View source →

  • Robson and colleagues on the English median Atkinson inequality aversion

    Robson M, Asaria M, Cookson R, Tsuchiya A, Ali S. Eliciting the level of health inequality aversion in England. Health Economics. 2017;26(10):1328-1334. Table 1, which reports the median Atkinson epsilon of 10.95 elicited from the general public in England, the value used in two of the worked examples.

    View source →

Canonical Identity