Signature
W = h_1^(1 - epsilon) / (1 - epsilon) + h_2^(1 - epsilon) / (1 - epsilon) + h_3^(1 - epsilon) / (1 - epsilon)
| Inputs | Definition | Unit |
|---|---|---|
h_1 | Health of the first group, for example its quality-adjusted life expectancy (QALE), above zero | years of QALE |
epsilon | Atkinson inequality aversion parameter, zero or above and not equal to 1; 0 gives the utilitarian sum | none |
h_2 | Health of the second group, above zero | years of QALE |
h_3 | Health of the third group, above zero | years of QALE |
W | Social welfare of the allocation under the isoelastic form at the chosen epsilon, higher being better | welfare score, comparable only at the same epsilon |
|---|
Function
Health social welfare function ranking distributions of health
Maps the health of n people, or of n groups of equal size, and the parameters theta that state a distributional value judgement to a single social welfare value W, so that allocations can be ranked when they differ in who gains as well as in how much is gained. When W rises whenever one person's health rises and nobody's falls, every Pareto improvement raises welfare. The package gives Atkinson's isoelastic additive form for epsilon other than 1, its logarithmic form at epsilon of 1, the maximin limit, the two-group CES form of Wagstaff and the slope of its social indifference curve. The equally distributed equivalent (EDE) health that gives the same W is live as HE-FM-ATK-002 and HE-FM-ATK-003, the Atkinson index as HE-FM-ATK-001, the relative weight on a small gain as HE-FM-ATK-004 and equity-weighted QALY totals as HE-FM-EQWA-001, and HE-FM-WE-004 holds the linear two-group welfare with a switching weight; none is redrafted here. The health forgone for equity and the inequality aversion at which two options swap rank are left to the Equity-Efficiency Trade-off and Distributional Cost-Effectiveness packages. Notation follows the Social Welfare Function article.
Computational function
Computational function for ranking allocations by utilitarian, isoelastic and maximin health social welfare
Takes the health of each equal-sized group under each option and an inequality aversion parameter, and returns for every option the utilitarian total, the isoelastic welfare of HE-FM-SWF-001 (HE-FM-SWF-002 at epsilon of 1) and the maximin welfare of HE-FM-SWF-003, with the option ranked first under each. It repeats the article's three-step ranking for any number of options and groups, and it ranks the isoelastic values on a log scale so that very high epsilon values do not underflow. The Math / Code line shows three options and three groups at one epsilon other than 1, and the R and Python versions take any number. The values of epsilon at which two options swap rank belong to the Distributional Cost-Effectiveness package and are not computed here.
Inputs and outputs:
h_P1,h_P2andh_P3are the health of the three groups under option P, andh_T1toh_T3andh_R1toh_R3the same for options T and R, in years of QALE, each above zero.epsilonis the inequality aversion parameter, zero or above.U_P,U_TandU_Rare the utilitarian totals in years.W_P,W_TandW_Rare the isoelastic welfare scores.M_P,M_TandM_Rare the maximin values in years.Assumption: Groups are of equal size and every member of a group has the group's health, as in HE-FM-SWF-001. Tied options are all reported as first, because the three forms give no rule to break a tie.
Worked example (Article's three options at epsilon of 2): With the article's illustrative QALE values, P ranks first on the total, T on the isoelastic welfare and R on the maximin, the result of the article's steps 1 to 3.
h_P1 = 60.3; h_P2 = 68.5; h_P3 = 76.7; h_T1 = 61; h_T2 = 68.3; h_T3 = 76; h_R1 = 61.2; h_R2 = 67.6; h_R3 = 75.6; epsilon = 2; U_P = 205.5; U_T = 205.3; U_R = 204.4; W_P = -0.0442201; W_T = -0.0441926; W_R = -0.0443603; M_P = 60.3; M_T = 61; M_R = 61.2Worked example (Same options at epsilon of 0.5): At low aversion P also ranks first on the isoelastic welfare, about 49.5993 against 49.5849 for T and 49.4796 for R.
h_P1 = 60.3; h_P2 = 68.5; h_P3 = 76.7; h_T1 = 61; h_T2 = 68.3; h_T3 = 76; h_R1 = 61.2; h_R2 = 67.6; h_R3 = 75.6; epsilon = 0.5; U_P = 205.5; U_T = 205.3; U_R = 204.4; W_P = 49.5993; W_T = 49.5849; W_R = 49.4796; M_P = 60.3; M_T = 61; M_R = 61.2Worked example (Epsilon of 0 returns the totals): With no inequality aversion each isoelastic value equals the option's total, the limiting case that checks the implementation.
h_P1 = 60.3; h_P2 = 68.5; h_P3 = 76.7; h_T1 = 61; h_T2 = 68.3; h_T3 = 76; h_R1 = 61.2; h_R2 = 67.6; h_R3 = 75.6; epsilon = 0; U_P = 205.5; U_T = 205.3; U_R = 204.4; W_P = 205.5; W_T = 205.3; W_R = 204.4; M_P = 60.3; M_T = 61; M_R = 61.2Excel: With one option per row, the row's group health values in columns B to D and the parameter in InequalityAversion,
=IF(InequalityAversion=1,SUMPRODUCT(LN(B2:D2)),SUMPRODUCT(B2:D2^(1-InequalityAversion))/(1-InequalityAversion))returns the isoelastic welfare,=SUM(B2:D2)the total and=MIN(B2:D2)the maximin value, each filled down. With these columns named IsoelasticByOption, TotalByOption and MaximinByOption and the option names in OptionLabels,=INDEX(OptionLabels,MATCH(MAX(IsoelasticByOption),IsoelasticByOption,0))returns the preferred option. MATCH returns only the first of tied options, so=COUNTIF(IsoelasticByOption,MAX(IsoelasticByOption))is checked for a value above 1.R:
swf_rank <- function(H, epsilon) { U <- rowSums(H); M <- apply(H, 1, min); if (epsilon == 1) { W <- rowSums(log(H)); K <- W } else { L <- (1-epsilon)*log(M)+log(rowSums((H/M)^(1-epsilon)))-log(abs(1-epsilon)); W <- sign(1-epsilon)*exp(L); K <- sign(1-epsilon)*L }; best <- function(v) rownames(H)[abs(v-max(v)) <= 1e-12*max(1, abs(max(v)))]; list(U = U, W = W, M = M, best_U = best(U), best_W = best(K), best_M = best(M)) }H is a matrix with one named row per option and one column per group; K is the log-scale ranking key, which keeps its order when W underflows.Python:
import maththendef swf_rank(H, eps): s = math.copysign(1, 1-eps); U = [sum(r) for r in H]; M = [min(r) for r in H]; K = [sum(math.log(x) for x in r) if eps == 1 else s*((1-eps)*math.log(min(r))+math.log(sum((x/min(r))**(1-eps) for x in r))-math.log(abs(1-eps))) for r in H]; W = [k if eps == 1 else s*math.exp(s*k) for k in K]; best = lambda v: [i for i, x in enumerate(v) if abs(x-max(v)) <= 1e-12*max(1, abs(max(v)))]; return {"U": U, "W": W, "M": M, "best_U": best(U), "best_W": best(K), "best_M": best(M)}Takes a list of options, each a list of group health values, and returns the outputs with the positions of the preferred options.Test (Epsilon of 0 gives the totals): With InequalityAversion at 0 every isoelastic value equals the option's total. Expected result TRUE. FALSE shows the exponent written as minus epsilon, which gives 3 for every option. Excel check
=OR(InequalityAversion<>0,SUMPRODUCT(ABS(IsoelasticByOption-TotalByOption))<1E-9)Test (Article's isoelastic ranking at epsilon of 2): With the article's options in rows ordered P, T and R and InequalityAversion at 2, T is above P and P above R in IsoelasticByOption. Expected result TRUE. FALSE shows the divisor 1 minus epsilon left out of the isoelastic column, which reverses the order. Excel check
=AND(InequalityAversion=2,INDEX(IsoelasticByOption,2)>INDEX(IsoelasticByOption,1),INDEX(IsoelasticByOption,1)>INDEX(IsoelasticByOption,3))Common error (Isoelastic values that underflow at very high epsilon): At epsilon of 200 each term h_i^(1-epsilon) is far below the smallest double-precision number, so W is zero for all three options and they appear tied. The log-scale key used here still ranks R first, as the maximin form does.
Source: Atkinson AB. On the measurement of inequality. Journal of Economic Theory. 1970;2(3):244-263. Page 251, equation (5), for the isoelastic and logarithmic welfare functions, and page 257 for epsilon of 0 ranking by the total and the minimum as the limit when epsilon tends to infinity.
U_P = h_P1 + h_P2 + h_P3; U_T = h_T1 + h_T2 + h_T3; U_R = h_R1 + h_R2 + h_R3; W_P = (h_P1^(1 - epsilon) + h_P2^(1 - epsilon) + h_P3^(1 - epsilon)) / (1 - epsilon); W_T = (h_T1^(1 - epsilon) + h_T2^(1 - epsilon) + h_T3^(1 - epsilon)) / (1 - epsilon); W_R = (h_R1^(1 - epsilon) + h_R2^(1 - epsilon) + h_R3^(1 - epsilon)) / (1 - epsilon); M_P = min(h_P1, min(h_P2, h_P3)); M_T = min(h_T1, min(h_T2, h_T3)); M_R = min(h_R1, min(h_R2, h_R3))
Try this function
Implementations
Excel
Isoelastic social welfare of three groups from named cells
With the three groups' health in HealthFirstGroup, HealthSecondGroup and HealthThirdGroup and the parameter in InequalityAversion, not equal to 1, the formula returns W. The result cell is named IsoelasticWelfare.
=(HealthFirstGroup^(1-InequalityAversion)+HealthSecondGroup^(1-InequalityAversion)+HealthThirdGroup^(1-InequalityAversion))/(1-InequalityAversion)
Assumptions
Equal-sized groups each at its mean health in the isoelastic welfare
Each h_i is the health of one person, or of one of n groups of equal size whose members are all given the group's mean health, so inequality within a group is ignored. Groups of unequal size need population shares, as in the computational function HE-CF-ATK-001.
Inequality aversion as a value judgement in the isoelastic welfare
Epsilon states how much total health would be given up for a more equal spread, a social value judgement that comes from outside the clinical evidence. Asaria, Griffin and Cookson state that such judgements should be provided by the decision maker and that the sensitivity of conclusions to them should be explored, so W is reported over a range of epsilon values.
Isoelastic welfare and the NICE limits on inequality aversion functions
In NICE technology appraisal a distributional cost-effectiveness analysis (DCEA) is supporting evidence only (PMG36, section 4.12.3), and its results should not weight costs or benefits by the social characteristics of the people affected (section 4.12.7). The NICE support document on health inequalities states that this includes mathematical functions that use health inequality aversion parameters, so W at an epsilon above 0 falls outside the DCEA results reported to NICE.
Worked examples
Isoelastic welfare of the targeted option at epsilon of 2
In the article's illustrative example, option T leaves three equal-sized groups with QALE of 61.0, 68.3 and 76.0 years. At epsilon of 2 each term is minus the reciprocal of health, and W is about minus 0.0441926, shown in the article multiplied by 1,000 as minus 44.1926.
h_1 = 61; h_2 = 68.3; h_3 = 76; epsilon = 2; W = -0.0441926
Isoelastic welfare of the population-wide option at epsilon of 2
Option P, with QALE of 60.3, 68.5 and 76.7 years, has W of about minus 0.0442201 at epsilon of 2. This is below T's minus 0.0441926, so the isoelastic function prefers T although P has the larger total.
h_1 = 60.3; h_2 = 68.5; h_3 = 76.7; epsilon = 2; W = -0.0442201
Isoelastic welfare at epsilon of 0 equals total health
At epsilon of 0 every term is the group's own health, so W for option P is its total of 205.5 years, the utilitarian limiting case in which P ranks first.
h_1 = 60.3; h_2 = 68.5; h_3 = 76.7; epsilon = 0; W = 205.5
Common errors
Dropping the divisor 1 minus epsilon from isoelastic welfare
For epsilon above 1 the divisor is negative, so leaving it out flips the sign of every term and reverses the ranking. In the article's example at epsilon of 2 the values become 0.0442201 for P, 0.0441926 for T and 0.0443603 for R, so R would appear best and T worst, the opposite of the correct order.
Comparing isoelastic welfare values across epsilon values
W for option P is about 49.5993 at epsilon of 0.5 and minus 0.0442201 at epsilon of 2. The fall reflects the change of scale alone, so W is compared only between allocations at one epsilon, and a comparison across epsilon values uses EDE health from HE-FM-ATK-002, which is in years of QALE.
Sources
Atkinson's isoelastic welfare function under constant relative inequality aversion
Atkinson AB. On the measurement of inequality. Journal of Economic Theory. 1970;2(3):244-263. Page 251, equation (5), which derives U(y) = A + B y^(1-epsilon)/(1-epsilon) for epsilon not equal to 1 and log y at epsilon of 1 from constant relative inequality aversion, with epsilon of zero or above for concavity, and page 257, which takes the welfare function as symmetric and additively separable, with epsilon of 0 ranking distributions solely by the total and the limit as epsilon tends to infinity giving the minimum.
Asaria, Griffin and Cookson on the utilitarian and maximin limits of the Atkinson social welfare index
Asaria M, Griffin S, Cookson R. Measuring health inequality in the context of cost-effectiveness analysis. In Health and Inequality. Research on Economic Inequality, volume 21. Emerald Group Publishing, 2013, pages 491-507. Author manuscript, section on the Atkinson social welfare index, which states that an epsilon of 0 represents the utilitarian view that only total health matters and that as epsilon approaches infinity the index represents the maximin view, and the passage after the Kolm index, which states that these social value judgements should be provided by the decision maker and that the sensitivity of conclusions to them should be explored.
NICE manual on distributional cost-effectiveness analysis as supporting evidence
National Institute for Health and Care Excellence. NICE technology appraisal and highly specialised technologies guidance: the manual (PMG36). Published 31 January 2022, last updated 13 October 2026. Chapter 4 Economic evaluation, section 4.12.3, which states that DCEA should only be used as supporting evidence of the potential for a technology to impact health inequalities, and section 4.12.7, which states that the results of the DCEA should not weigh the costs or benefits of a technology differently based on the social characteristics of the people affected by the recommendation.
NICE support document on inequality aversion functions in distributional analysis
National Institute for Health and Care Excellence. Support document: health inequalities. Technology evaluation methods support document for PMG36, chapter Distributional cost-effectiveness analysis methods, page last updated 13 May 2025. Section Health inequality aversion weights, which states that the results of the DCEA should not weight the costs or benefits of a technology differently based on the social characteristics of the people affected, and that this includes using mathematical functions that use health inequality aversion parameters, and table 1, which states that health inequality aversion weights should not be applied to QALYs.
Canonical Identity
Stable URI · Machine-readable · Resolvable · CC BY 4.0
