Signature
beta_d = b_2 * (min(l_d - 1, 1) - min(max(l_d - 2, 0), 1)) + b_3 * (min(max(l_d - 2, 0), 1) - min(max(l_d - 3, 0), 1)) + b_4 * (min(max(l_d - 3, 0), 1) - max(l_d - 4, 0)) + b_5 * max(l_d - 4, 0)
| Inputs | Definition | Unit |
|---|---|---|
b_2 | Value set decrement for level 2 on the dimension, entered as a positive number | utility, no unit |
l_d | Reported level on dimension d, 1 no problems, 2 slight, 3 moderate, 4 severe, 5 unable or extreme | level, whole number 1, 2, 3, 4 or 5 |
b_3 | Value set decrement for level 3 on the dimension, entered as a positive number | utility, no unit |
b_4 | Value set decrement for level 4 on the dimension, entered as a positive number | utility, no unit |
b_5 | Value set decrement for level 5, unable on mobility, self-care and usual activities and extreme on pain or discomfort and anxiety or depression, entered as a positive number | utility, no unit |
beta_d | Decrement the value set attaches to the level reported on dimension d, zero at level 1 | utility, no unit |
|---|
Function
EQ-5D-5L value set scoring function
Maps an EQ-5D-5L profile, the level 1 to 5 reported on each of mobility, self-care, usual activities, pain or discomfort and anxiety or depression, to a single utility under the coefficients of a chosen five-level value set. The five-level instrument describes 3,125 states, and a main-effects value set gives each dimension its own decrement at each of levels 2 to 5, 20 decrements in all, plus a constant where the set reports one. Once the decrement for the reported level of each dimension has been looked up (HE-FM-EQ5L-001), the profile score is the main-effects form of HE-FM-EQ3L-001 with the N3 decrement set to zero, and the three-level tariff itself is HE-FM-EQ3L-002; the 15D counterpart is HE-FM-15D-001. The utilities it returns weight time in QALYs (HE-FM-QALY-001), and a QALY difference between two scored states is HE-FM-EQ3L-003, which applies only when both states are scored with the same set. Scoring one profile under the value sets of two countries belongs to the Country-Specific Value Set page. Notation follows the EQ-5D-5L Value Set article.
Computational function
Computational function for scoring an EQ-5D-5L profile under any 20-decrement value set
Takes an EQ-5D-5L profile, as a five-digit string such as 23245 or as five level inputs, and a five-level value set given as a constant and a table of 20 decrements, and returns the utility. It applies HE-FM-EQ5L-001 on each dimension and subtracts the five decrements, and the constant where the set has one, from 1, so with the England coefficients it reproduces HE-FM-EQ5L-002. The R and Python versions also score all 3,125 states, which is how the count of states below zero is checked.
Inputs and outputs:
l_MO,l_SC,l_UA,l_PDandl_ADare the reported levels, required, whole numbers 1 to 5, in profile order;b_MO2tob_MO5,b_SC2tob_SC5,b_UA2tob_UA5,b_PD2tob_PD5andb_AD2tob_AD5are the level 2 to level 5 decrements of each dimension, required, positive;c_0is the constant decrement charged once for any problem, 0 for a set without one, such as England;Dis the any-problem indicator, 0 or 1;Uis the utility, no unit.Assumption: The value set has main effects only, with at most a constant beyond the 20 decrements. A set with interaction terms, such as the N3 term of the UK three-level tariff in HE-FM-EQ3L-002, needs its own scoring rule.
Worked example (England set, state 23245): The England coefficients give 0.247, the value worked in Table 2 of Devlin and colleagues.
l_MO = 2; l_SC = 3; l_UA = 2; l_PD = 4; l_AD = 5; c_0 = 0; b_MO2 = 0.058; b_MO3 = 0.076; b_MO4 = 0.207; b_MO5 = 0.274; b_SC2 = 0.050; b_SC3 = 0.080; b_SC4 = 0.164; b_SC5 = 0.203; b_UA2 = 0.050; b_UA3 = 0.063; b_UA4 = 0.162; b_UA5 = 0.184; b_PD2 = 0.063; b_PD3 = 0.084; b_PD4 = 0.276; b_PD5 = 0.335; b_AD2 = 0.078; b_AD3 = 0.104; b_AD4 = 0.285; b_AD5 = 0.289; D = 1; U = 0.247Worked example (England set, worst state 55555): Level 5 on every dimension gives minus 0.285, the minimum of the set.
l_MO = 5; l_SC = 5; l_UA = 5; l_PD = 5; l_AD = 5; c_0 = 0; b_MO2 = 0.058; b_MO3 = 0.076; b_MO4 = 0.207; b_MO5 = 0.274; b_SC2 = 0.050; b_SC3 = 0.080; b_SC4 = 0.164; b_SC5 = 0.203; b_UA2 = 0.050; b_UA3 = 0.063; b_UA4 = 0.162; b_UA5 = 0.184; b_PD2 = 0.063; b_PD3 = 0.084; b_PD4 = 0.276; b_PD5 = 0.335; b_AD2 = 0.078; b_AD3 = 0.104; b_AD4 = 0.285; b_AD5 = 0.289; D = 1; U = -0.285Worked example (Full health under the England set): State 11111 sets every indicator to zero and scores 1, a limiting case for any coefficient table.
l_MO = 1; l_SC = 1; l_UA = 1; l_PD = 1; l_AD = 1; c_0 = 0; b_MO2 = 0.058; b_MO3 = 0.076; b_MO4 = 0.207; b_MO5 = 0.274; b_SC2 = 0.050; b_SC3 = 0.080; b_SC4 = 0.164; b_SC5 = 0.203; b_UA2 = 0.050; b_UA3 = 0.063; b_UA4 = 0.162; b_UA5 = 0.184; b_PD2 = 0.063; b_PD3 = 0.084; b_PD4 = 0.276; b_PD5 = 0.335; b_AD2 = 0.078; b_AD3 = 0.104; b_AD4 = 0.285; b_AD5 = 0.289; D = 0; U = 1Excel:
=1-Const*(SUM(Levels)>5)-SUMPRODUCT((Levels=2)*DecSlight+(Levels=3)*DecModerate+(Levels=4)*DecSevere+(Levels=5)*DecWorst)With the five levels in a row range named Levels and the level 2, 3, 4 and 5 decrements of the five dimensions in row ranges named DecSlight, DecModerate, DecSevere and DecWorst of the same shape, and the constant in a cell named Const, the formula returns U in a cell named ProfileUtility.R:
eq5l_utility <- function(s, tab, c0 = 0) { l <- as.integer(strsplit(as.character(s), "")[[1]]); dec <- sum(sapply(1:5, function(d) if (l[d] == 1) 0 else tab[d, l[d]-1])); 1-c0*any(l > 1)-dec }Takes the profile as a string and a 5 by 4 matrix of decrements with rows in profile order and columns for levels 2 to 5. Witheng <- rbind(c(0.058, 0.076, 0.207, 0.274), c(0.050, 0.080, 0.164, 0.203), c(0.050, 0.063, 0.162, 0.184), c(0.063, 0.084, 0.276, 0.335), c(0.078, 0.104, 0.285, 0.289)),v <- sapply(apply(expand.grid(rep(list(1:5), 5)), 1, paste, collapse = ""), eq5l_utility, tab = eng)scores all 3,125 states, andc(min(v), sum(v < 0))returns minus 0.285 and 159.Python:
def eq5l_utility(s, tab, c0=0): l = [int(c) for c in str(s)]; return 1-c0*any(x > 1 for x in l)-sum(tab[d][x-2] for d, x in enumerate(l) if x > 1)Takes the profile as a string or integer and a list of five lists of four decrements in profile order. Witheng = [[0.058, 0.076, 0.207, 0.274], [0.050, 0.080, 0.164, 0.203], [0.050, 0.063, 0.162, 0.184], [0.063, 0.084, 0.276, 0.335], [0.078, 0.104, 0.285, 0.289]],from itertools import product; v = [eq5l_utility("".join(map(str, p)), eng) for p in product(range(1, 6), repeat=5)]scores all 3,125 states, and(round(min(v), 3), sum(x < 0 for x in v))returns (-0.285, 159).Test (Implementation cell against the Table 2 example): With Levels set to 2, 3, 2, 4 and 5, the England decrements in the four ranges and Const at 0, ProfileUtility equals 1 minus the five Table 2 decrements for 23245. Expected result TRUE. FALSE shows misaligned ranges, for example DecSlight and DecModerate swapped, which gives 0.246. Excel check
=ABS(ProfileUtility-(1-0.058-0.080-0.050-0.276-0.289))<0.000001Test (England worst state and states below zero): With Levels set to 5, 5, 5, 5 and 5, the England decrements in the four ranges and Const at 0, ProfileUtility rounds to minus 0.285 and lies below zero, the minimum given in section 3.4 of Devlin and colleagues. Scoring all 3,125 states with the R or Python code gives 159 below zero, 5.1%, as in Table 3, and a minimum other than minus 0.285 or a count other than 159 there shows a coefficient mistyped or a level misread. Expected result TRUE. FALSE shows a level 5 decrement entered wrongly, for example the anxiety or depression severe value 0.285 entered in DecWorst in place of 0.289, which gives minus 0.281. Excel check
=AND(ROUND(ProfileUtility,3)=-0.285,ProfileUtility<0)Common error (Constant row read as a decrement): Table 2 prints a constant of 1.000, the value the decrements are subtracted from. Entering it as c_0 subtracts 1 from every state with any problem, so 23245 scores minus 0.753 instead of 0.247. For England c_0 is 0.
Source: Devlin NJ, Shah KK, Feng Y, Mulhern B, van Hout B. Valuing health-related quality of life: an EQ-5D-5L value set for England. Health Economics. 2018;27(1):7-22. Table 2, which prints the England decrements for levels 2 to 5 of each dimension and works the value of 23245 as 0.247 by subtracting one decrement per dimension from the constant; section 3.4 and Table 3, which give the minimum minus 0.285 and 159 of 3,125 states worse than dead.
D = min(l_MO + l_SC + l_UA + l_PD + l_AD - 5, 1); U = 1 - c_0 * D - (b_MO2 * (min(l_MO - 1, 1) - min(max(l_MO - 2, 0), 1)) + b_MO3 * (min(max(l_MO - 2, 0), 1) - min(max(l_MO - 3, 0), 1)) + b_MO4 * (min(max(l_MO - 3, 0), 1) - max(l_MO - 4, 0)) + b_MO5 * max(l_MO - 4, 0)) - (b_SC2 * (min(l_SC - 1, 1) - min(max(l_SC - 2, 0), 1)) + b_SC3 * (min(max(l_SC - 2, 0), 1) - min(max(l_SC - 3, 0), 1)) + b_SC4 * (min(max(l_SC - 3, 0), 1) - max(l_SC - 4, 0)) + b_SC5 * max(l_SC - 4, 0)) - (b_UA2 * (min(l_UA - 1, 1) - min(max(l_UA - 2, 0), 1)) + b_UA3 * (min(max(l_UA - 2, 0), 1) - min(max(l_UA - 3, 0), 1)) + b_UA4 * (min(max(l_UA - 3, 0), 1) - max(l_UA - 4, 0)) + b_UA5 * max(l_UA - 4, 0)) - (b_PD2 * (min(l_PD - 1, 1) - min(max(l_PD - 2, 0), 1)) + b_PD3 * (min(max(l_PD - 2, 0), 1) - min(max(l_PD - 3, 0), 1)) + b_PD4 * (min(max(l_PD - 3, 0), 1) - max(l_PD - 4, 0)) + b_PD5 * max(l_PD - 4, 0)) - (b_AD2 * (min(l_AD - 1, 1) - min(max(l_AD - 2, 0), 1)) + b_AD3 * (min(max(l_AD - 2, 0), 1) - min(max(l_AD - 3, 0), 1)) + b_AD4 * (min(max(l_AD - 3, 0), 1) - max(l_AD - 4, 0)) + b_AD5 * max(l_AD - 4, 0))
Try this function
Implementations
Excel
EQ-5D-5L dimension decrement with CHOOSE from named level coefficients
With the reported level in a cell named LevelReported and the four coefficients in cells named DecrementSlight, DecrementModerate, DecrementSevere and DecrementWorst, CHOOSE returns 0 for level 1 and the matching coefficient otherwise. The result goes in a cell named DimensionDecrement.
=CHOOSE(LevelReported,0,DecrementSlight,DecrementModerate,DecrementSevere,DecrementWorst)
Assumptions
EQ-5D-5L level decrements zero at level 1 and ordered by level
No decrement applies at level 1, and on each dimension b_2, b_3, b_4 and b_5 are zero or positive and no smaller than the coefficient of the level below. A set that broke this order would score a worse level on one dimension above a better one with the other dimensions unchanged. Devlin and colleagues built the order into the England model by estimating the level 2 parameters first and adding terms that can only be non-negative for each worse level, and the England coefficients keep it on all five dimensions, for example 0.058, 0.076, 0.207 and 0.274 for mobility.
Whole-number EQ-5D-5L levels with five labels per dimension
The level is a whole number 1 to 5 read from the respondent's answer. The labels in the England value set table are slight, moderate and severe for levels 2 to 4, with unable as the level 5 label for mobility, self-care and usual activities and extreme for pain or discomfort and anxiety or depression. The min and max indicators are exact only for whole numbers, so a mean level or a missing answer has to be resolved before scoring.
EQ-5D-5L decrement of one dimension independent of the other dimensions
The decrement on one dimension does not depend on the levels reported on the others, the main-effects structure of the 20-parameter model that Devlin and colleagues selected for England after testing alternative models for interaction effects between dimensions and levels. A set with interaction terms needs its own scoring rule. Summing the five lookups and subtracting the total from 1, less a constant where the set reports one, is HE-FM-EQ3L-001 with the N3 decrement gamma set to zero.
Worked examples
England EQ-5D-5L mobility decrement at the severe level
With the England mobility coefficients of Devlin and colleagues 2018, a respondent reporting severe problems in walking about, level 4, takes the level 4 coefficient 0.207 and none of the others.
b_2 = 0.058; b_3 = 0.076; b_4 = 0.207; b_5 = 0.274; l_d = 4; beta_d = 0.207
England EQ-5D-5L pain or discomfort decrement at the extreme level
Extreme pain or discomfort, level 5, takes the England coefficient 0.335, the largest single decrement in the set.
b_2 = 0.063; b_3 = 0.084; b_4 = 0.276; b_5 = 0.335; l_d = 5; beta_d = 0.335
EQ-5D-5L dimension with no problems carries no decrement
At level 1 every indicator is zero, so the decrement is zero whatever the coefficients, shown here with the England anxiety or depression coefficients. This limiting case checks that full health on a dimension costs nothing.
b_2 = 0.078; b_3 = 0.104; b_4 = 0.285; b_5 = 0.289; l_d = 1; beta_d = 0
Common errors
Adding the lower EQ-5D-5L level decrements to the reported one
Each coefficient in a five-level value set table is the whole decrement for its level. Adding the England mobility coefficients for levels 2, 3 and 4 for a severe mobility problem gives 0.341 instead of 0.207, and the England worked example for 23245 subtracts a single coefficient per dimension.
Reading the EQ-5D-5L level one place too high
Treating the level as a position in the list of four coefficients, without the zero for level 1, picks the next coefficient up. For England mobility a severe problem then costs 0.274 instead of 0.207, a slight problem 0.076 instead of 0.058, and level 5 has no coefficient left, so CHOOSE returns an error value.
Sources
England EQ-5D-5L value set models with one parameter per level step
Devlin NJ, Shah KK, Feng Y, Mulhern B, van Hout B. Valuing health-related quality of life: an EQ-5D-5L value set for England. Health Economics. 2018;27(1):7-22. Section 2.5, methods of analysis, which describes the least restrictive model as having a parameter for each decrement or step away from no problems (level 1) on each dimension, 20 parameters (4 levels times 5 dimensions), notes that alternative models were tested for interaction effects, states that in the England model the level 2 parameters were estimated first and the parameters for worse levels by adding quadratic terms that can only be non-negative, and gives unable as the level 5 label for mobility, self-care and usual activities and extreme for pain or discomfort and anxiety or depression; section 3.4 and Table 2, which select the 20-parameter model and print one decrement for each level of each dimension.
Canonical Identity
Stable URI · Machine-readable · Resolvable · CC BY 4.0
