Signature
SII = cov_hr / var_r
| Inputs | Definition | Unit |
|---|---|---|
cov_hr | Population-weighted covariance between group mean health and group midpoint rank | health units, for example years of QALE |
var_r | Population-weighted variance of the group midpoint ranks. It depends only on the population shares and is 0.08 for five equal groups | none |
SII | Slope index of inequality: predicted health at rank 1 minus predicted health at rank 0. Positive when health is higher in the advantaged groups | units of the health variable, for example years of QALE |
|---|
Function
Health inequality measures across ordered population groups
Maps the mean health of population groups, ordered from the most to the least disadvantaged, and the share of the population in each group to summary measures of socioeconomic-related health inequality: the absolute and relative gaps between the extreme groups, the slope index of inequality, the relative index of inequality in two forms and the concentration index. The measures describe how health varies with socioeconomic position and do not say whether that variation is unfair, which is the separate judgement of health inequity. The Atkinson index, which ignores the ranking of groups, has its own records on the Atkinson index page (HE-FN-ATK-001) and is not repeated here.
Computational function
Computational function: health inequality indices from group mean health and population shares
Takes the inputs a health inequality analysis usually holds, the mean health of each group in order from the most to the least disadvantaged and the share of the population in each group, and returns the slope index of inequality, both forms of the relative index of inequality and the concentration index. It first builds each group's midpoint rank from the shares, then the population-weighted mean, covariance and variance, and then applies HE-FM-HINQ-002 to HE-FM-HINQ-005. The inputs therefore differ from the formulas' variables, which take the ranks, covariance and variance as given.
Inputs and outputs:
h_j: Mean health of group j, in order from the most disadvantaged group to the most advantaged; required, above zero for the relative measures. Unit: health units, for example years of QALE.;f_j: Share of the population in group j, in the same order; required, above zero. The R and Python versions divide by the total, so counts can be entered. Unit: proportion.;r_j: Midpoint rank of group j, the sum of the shares before it plus half its own share, returned as an intermediate output. Unit: none.;mu: Population-weighted mean health. Unit: health units.;cov_hr: Population-weighted covariance of health and rank, an intermediate output. Unit: health units.;var_r: Population-weighted variance of rank, an intermediate output. Unit: none.;SII: Slope index of inequality. Unit: health units.;alpha: Predicted health at rank 0. Unit: health units.;RII_ratio: Relative index of inequality, ratio form. Unit: none.;RII_mean: Relative index of inequality, slope index over mean health. Unit: none.;C: Concentration index. Unit: none.Assumption: The groups have a natural socioeconomic order, each group is given its mean health so only inequality between groups is measured, and the slope index comes from a straight line fitted by population-weighted least squares.
Worked example (Five equal deprivation quintiles): The article's quintiles, with QALE of 62, 66, 69, 71 and 72 years and 20% of the population in each, give a mean of 68 years, a slope index of 12.5 years, relative indices of 1.2024 and 0.1838, and a concentration index of 0.0294.
h_j = [62,66,69,71,72]; f_j = [0.2,0.2,0.2,0.2,0.2]; mu = 68; SII = 12.5; RII_ratio = 1.2024; RII_mean = 0.1838; C = 0.0294Worked example (Gain of 1 year in every quintile): Programme A in the article leaves the slope index at 12.5 years while every relative measure falls.
h_j = [63,67,70,72,73]; f_j = [0.2,0.2,0.2,0.2,0.2]; mu = 69; SII = 12.5; RII_ratio = 1.1992; RII_mean = 0.1812; C = 0.0290Worked example (Unequal group sizes): An illustrative variation with the same QALE values and shares of 0.30, 0.25, 0.20, 0.15 and 0.10 from the most to the least deprived group gives midpoint ranks of 0.15, 0.425, 0.65, 0.825 and 0.95.
h_j = [62,66,69,71,72]; f_j = [0.30,0.25,0.20,0.15,0.10]; mu = 66.75; SII = 13.0; RII_ratio = 1.2158; RII_mean = 0.1948; C = 0.0307Worked example (Equal health in every group): When every group has the same mean health the function returns no inequality on any measure, a limiting case that checks the implementation.
h_j = [68,68,68,68,68]; f_j = [0.2,0.2,0.2,0.2,0.2]; mu = 68; SII = 0; RII_ratio = 1; RII_mean = 0; C = 0Excel:
=SUM(B$2:B2)-B2/2With the shares in B2:B6, summing to 1, this formula filled down beside them gives the midpoint ranks, named Rank, with health in a range named Health and shares in Share. The slope index is then=SUMPRODUCT(Share,(Health-SUMPRODUCT(Share,Health))*(Rank-0.5))/SUMPRODUCT(Share,(Rank-0.5)^2)and the concentration index=2*SUMPRODUCT(Share,(Health-SUMPRODUCT(Share,Health))*(Rank-0.5))/SUMPRODUCT(Share,Health).R:
health_ineq <- function(h, f) { f <- f/sum(f); r <- cumsum(f)-f/2; mu <- sum(f*h); cv <- sum(f*(h-mu)*(r-0.5)); vr <- sum(f*(r-0.5)^2); sii <- cv/vr; a <- mu-sii/2; c(mean = mu, SII = sii, RII_ratio = (a+sii)/a, RII_mean = sii/mu, C = 2*cv/mu) }Returns the mean and the four indices for one set of groups; applying it to each programme's group means gives a comparison table.Python:
def health_ineq(h, f): w = [x/sum(f) for x in f]; r = [sum(w[:j])+w[j]/2 for j in range(len(w))]; mu = sum(a*b for a, b in zip(w, h)); cv = sum(a*(b-mu)*(c-0.5) for a, b, c in zip(w, h, r)); vr = sum(a*(c-0.5)**2 for a, c in zip(w, r)); sii = cv/vr; al = mu-sii/2; return {'mean': mu, 'SII': sii, 'RII_ratio': (al+sii)/al, 'RII_mean': sii/mu, 'C': 2*cv/mu}Plain Python with no imports; the shares are rescaled to sum to 1 inside the function.Test (Population-weighted mean rank is one half): With midpoint ranks built from shares that sum to 1, the weighted mean rank is 0.5. Expected result: TRUE. Excel check:
=ABS(SUMPRODUCT(Share,Rank)-0.5)<1E-9Test (Concentration index agrees with the slope index): Twice the variance of rank times the slope index, divided by mean health, returns the concentration index. Expected result: TRUE. Excel check:
=ABS(ConcIndex-2*SUMPRODUCT(Share,(Rank-0.5)^2)*SII/SUMPRODUCT(Share,Health))<1E-9Common error (Fitting an unweighted line when groups differ in size): Using Excel SLOPE on the group means and midpoint ranks gives each group the same weight. In the unequal-shares example it returns about 12.66 years instead of 13.0, and every relative measure built on it inherits the error.
Source: World Health Organization. Handbook on health inequality monitoring: with a special focus on low- and middle-income countries. Geneva: World Health Organization; 2013. Section 3.5 on the slope index of inequality, with ranks at the midpoint of each subgroup's range in the cumulative population distribution, and the tip box on the relative index of inequality. The concentration index steps follow O'Donnell O, van Doorslaer E, Wagstaff A, Lindelow M. Analyzing health equity using household survey data: a guide to techniques and their implementation. Washington, DC: World Bank; 2008. Chapter 8, equations 8.3 and 8.5.
r_j = sum_(k=1)^(j-1) [f_k] + f_j / 2; mu = sum_(j=1)^J [f_j * h_j]; cov_hr = sum_(j=1)^J [f_j * (h_j - mu) * (r_j - 0.5)]; var_r = sum_(j=1)^J [f_j * (r_j - 0.5)^2]; SII = cov_hr / var_r; alpha = mu - SII / 2; RII_ratio = (alpha + SII) / alpha; RII_mean = SII / mu; C = 2 * cov_hr / mu
Try this function
Implementations
Excel
Slope index of inequality from grouped data in one Excel cell
With group mean health in a range named Health, population shares summing to 1 in Share and midpoint ranks in Rank, all in order from the most disadvantaged group, Excel returns the population-weighted slope. Each midpoint rank is the sum of the shares of the groups before it plus half the group's own share.
=SUMPRODUCT(Share,(Health-SUMPRODUCT(Share,Health))*(Rank-0.5))/SUMPRODUCT(Share,(Rank-0.5)^2)
Assumptions
Straight line fitted by population-weighted least squares for the slope index
The slope index here comes from a straight line fitted by population-weighted least squares, as in the article. The WHO handbook asks for an appropriate regression model, and a different model gives a different value, so the model is stated with the result.
Naturally ordered groups for the slope index of inequality
The groups have a natural order, such as deprivation quintiles or education levels, and are ranked from the most to the least disadvantaged. For groups without an order, such as regions, the WHO handbook uses other measures.
Between-group inequality only in the grouped slope index
Each group is represented by its mean health, so differences within a group are averaged away and the index describes inequality between the groups only.
Worked examples
Slope index of inequality for five equal deprivation quintiles
In the article's example with five equal quintiles the population-weighted covariance is 1.0 and the variance of the midpoint ranks is 0.08, so the slope index is 1.0 / 0.08 = 12.5 years of QALE. It exceeds the simple gap of 10 years because it compares predicted values at ranks 0 and 1, not quintiles centred at ranks 0.1 and 0.9.
cov_hr = 1.0; var_r = 0.08; SII = 12.5
Slope index of inequality with unequal group sizes
An illustrative variation on the article's example keeps the same QALE values but gives the five groups population shares of 0.30, 0.25, 0.20, 0.15 and 0.10, from the most to the least deprived. The midpoint ranks become 0.15, 0.425, 0.65, 0.825 and 0.95, the covariance 1.02375 and the variance 0.07875, so the slope index is 13.0 years while the absolute gap stays at 10 years.
cov_hr = 1.02375; var_r = 0.07875; SII = 13.0
Common errors
Reading the slope index of inequality as the gap between extreme groups
The slope index compares predicted health at ranks 0 and 1, the ends of the population distribution, not the means of the first and last groups. In the article's example it is 12.5 years against a simple gap of 10 years, so the two numbers are not interchangeable in a report.
Fitting an unweighted line for the slope index with unequal group sizes
An unweighted fit, for example with Excel SLOPE, gives every group the same weight whatever its size. In the unequal-shares example the unweighted slope is about 12.66 years against 13.0 years with population weights.
Sources
WHO handbook method for the slope index of inequality
World Health Organization. Handbook on health inequality monitoring: with a special focus on low- and middle-income countries. Geneva: World Health Organization; 2013. Section 3.5, which ranks the population from the most disadvantaged at rank 0 to the most advantaged at rank 1, places each subgroup at the midpoint of its range in the cumulative population distribution, regresses health on that midpoint and takes the difference between the predicted values at rank 1 and rank 0.
Canonical Identity
Stable URI · Machine-readable · Resolvable · CC BY 4.0