Crosswalk methods allow EQ-5D values to be estimated when a
country-specific value set exists for one instrument version but not
another. eq5dsuite implements three widely used
approaches:
eqxw) — maps
EQ-5D-5L responses to EQ-5D-3L values (van Hout et al., 2012)eqxwr) — maps
EQ-5D-3L responses to EQ-5D-5L values (van Hout and Shaw, 2021)eqxw_UK) —
maps EQ-5D-5L responses to values on the UK EQ-5D-3L value set
(Hernández Alava et al., 2023)eqxwr_UK)
— maps EQ-5D-3L responses to values on the UK EQ-5D-5L value set
(Hernández Alava et al., 2023)The two NICE DSU mappings are age- and sex-specific and cover the
United Kingdom only. They are not the van Hout crosswalks:
eqxwr() and eqxwr_UK() answer different
questions and are not interchangeable.
Use crosswalk methods when:
eqxw()eqxwr()eqxwr_UK()NICE’s interim methods statement of 27 August 2026 (NICE, 2026;
PMG51) takes the UK EQ-5D-5L value set (Rowen et al., 2026) as the
reference case for topics started after that date – for technology
appraisals, those whose invitation to participate was issued after it.
Topics started earlier continue to map EQ-5D-5L data to EQ-5D-3L utility
values (with eqxw_UK()). For new topics:
eq5d5l(x, country = "GB"). No mapping
is needed.eqxwr_UK(), the mapping the statement specifies in that
situation (Hernández Alava et al., 2023).eqxw_UK() maps in the other direction, to the older UK
EQ-5D-3L value set. It remains for topics started before 27 August 2026
and for reproducing earlier analyses.eq5d5l_data <- data.frame(
id = 1:5,
mo = c(1, 2, 3, 1, 2),
sc = c(1, 1, 2, 1, 3),
ua = c(2, 1, 3, 1, 2),
pd = c(2, 3, 2, 1, 4),
ad = c(1, 2, 1, 3, 2)
)
# Apply crosswalk using UK 3L value set
eq5d5l_data$value_xw <- eqxw(
eq5d5l_data,
country = "GB",
dim.names = c("mo", "sc", "ua", "pd", "ad")
)
eq5d5l_data
#> id mo sc ua pd ad value_xw
#> 1 1 1 1 2 2 1 0.7947687
#> 2 2 2 1 1 3 2 0.6829058
#> 3 3 3 2 3 2 1 0.6288650
#> 4 4 1 1 1 1 3 0.8480001
#> 5 5 2 3 2 4 2 0.3374945eq5d3l_data <- data.frame(
id = 1:5,
mo = c(1, 2, 1, 3, 2),
sc = c(1, 1, 2, 2, 1),
ua = c(1, 2, 1, 3, 2),
pd = c(2, 2, 1, 3, 3),
ad = c(1, 1, 2, 2, 1)
)
# Apply reverse crosswalk using Spain 5L value set
eq5d3l_data$value_rxw <- eqxwr(
eq5d3l_data,
country = "ES",
dim.names = c("mo", "sc", "ua", "pd", "ad")
)
eq5d3l_data
#> id mo sc ua pd ad value_rxw
#> 1 1 1 1 1 2 1 0.90095476
#> 2 2 2 1 2 2 1 0.73260937
#> 3 3 1 2 1 1 2 0.81044151
#> 4 4 3 2 3 3 2 -0.04655332
#> 5 5 2 1 2 3 1 0.54478451Both NICE DSU mappings require age and sex in addition to the five EQ-5D dimensions. Age is used in years and grouped into five bands (16–34, 35–44, 45–54, 55–64, 65 and over); sex is 1 for male and 0 for female.
uk_data <- data.frame(
id = 1:5,
mo = c(1, 2, 1, 3, 2),
sc = c(1, 1, 2, 2, 1),
ua = c(1, 2, 1, 3, 2),
pd = c(2, 2, 1, 3, 3),
ad = c(1, 1, 2, 2, 1),
age = c(45, 62, 38, 71, 55),
male = c(1, 0, 1, 0, 1)
)
uk_data$value_uk <- eqxw_UK(
uk_data,
age = "age",
male = "male"
)
uk_data
#> id mo sc ua pd ad age male value_uk
#> 1 1 1 1 1 2 1 45 1 0.8637525
#> 2 2 2 1 2 2 1 62 0 0.7420881
#> 3 3 1 2 1 1 2 38 1 0.8471943
#> 4 4 3 2 3 3 2 71 0 0.5306411
#> 5 5 2 1 2 3 1 55 1 0.6685958When only EQ-5D-3L data are available, eqxwr_UK() maps
them so they can be valued on the UK EQ-5D-5L value set:
uk3l <- data.frame(
id = 1:5,
mo = c(1, 2, 1, 3, 2),
sc = c(1, 1, 2, 2, 1),
ua = c(1, 2, 1, 3, 2),
pd = c(2, 2, 1, 3, 3),
ad = c(1, 1, 2, 2, 1),
age = c(45, 62, 38, 71, 55),
male = c(1, 0, 1, 0, 1)
)
uk3l$value_uk5l <- eqxwr_UK(uk3l, age = "age", male = "male")
uk3l
#> id mo sc ua pd ad age male value_uk5l
#> 1 1 1 1 1 2 1 45 1 0.92506034
#> 2 2 2 1 2 2 1 62 0 0.79902655
#> 3 3 1 2 1 1 2 38 1 0.86239329
#> 4 4 3 2 3 3 2 71 0 -0.08121815
#> 5 5 2 1 2 3 1 55 1 0.56006048Both functions also accept an EQ-5D value instead of a
health state, for mapping a mean reported in a published study. There is
no unique health state behind a mean, so the result is a kernel-weighted
average of the mapped values of nearby states.
bwidth = "default" applies the DSU’s recommended bandwidths
for mean values: 0.1 for values above 0.6, and 0.4 for values at or
below 0.6.
# a mean EQ-5D-3L value of 0.54 in women aged 35
eqxwr_UK(0.54, age = 35, male = 0, bwidth = "default")
#> [1] 0.7005354
# the bandwidth matters: a narrower one weights fewer states
eqxwr_UK(0.54, age = 35, male = 0, bwidth = 0.1)
#> [1] 0.746695This input is not intended for individual-level data. Map individual respondents from their health states, as above.
All crosswalk functions are compatible with custom value sets added
via eqvs_add(). The mapping and valuation steps are
independent, so any compatible value set can be used without
modification.
van Hout B, et al. (2012). Interim scoring for the EQ-5D-5L. Value in Health, 15(5), 708–715.
van Hout B, Shaw JW (2021). Mapping EQ-5D-3L to EQ-5D-5L. Value in Health, 24(9), 1285–1293.
Hernández Alava M, Pudney S, Wailoo A (2023). Estimating the relationship between EQ-5D-5L and EQ-5D-3L: results from a UK population study. PharmacoEconomics, 41(2), 199–207.
Rowen D, Mukuria C, Bray N, et al. (2026). A UK value set for the EQ-5D-5L. Value in Health, 29(5), 858–869.
National Institute for Health and Care Excellence (2026). Interim methods statement: implementing the EQ-5D-5L value set (PMG51). Published 27 August 2026. https://www.nice.org.uk/process/pmg51