Skip to contents

The WHO World Standard Population (world average population 2000-2025) of Ahmad et al. (2001), used for direct age standardization of rates so that populations with different age structures can be compared. This is the standard used for WHO indicators such as age-standardized NCD mortality.

Usage

who_std_pop

Format

A tibble with 21 rows (five-year age groups "0-4" to "100+") and 4 columns:

age_group

Age-group label, e.g. "0-4", "85-89", "100+".

age_start

Integer lower bound of the age group.

weight

The published WHO percentage for the age group. The published values sum to 100.035 (not exactly 100); this is carried verbatim from the source and is harmless, since weights are normalized wherever they are used.

std_million

The SEER "standard million" form: the weight scaled to a population of exactly 1,000,000 (the only adjustment is the 90-94 group rounded from 1,499.48 up to 1,500 so the total is exact).

Source

Ahmad OB, Boschi-Pinto C, Lopez AD, Murray CJL, Lozano R, Inoue M (2001). Age standardization of rates: a new WHO standard. GPE Discussion Paper Series No. 31. World Health Organization. Cross-checked against the SEER standard-population tables: https://seer.cancer.gov/stdpopulations/world.who.html

Details

To standardize data on coarser age groups (e.g. 0-4, 5-14, ..., 85+), aggregate the weights by summing weight (or std_million) over the constituent five-year groups, then pass them to age_standardize(). Only relative weights matter, so either column gives identical results.

The original publication does not split ages 0 and 1-4; the finest first group is 0-4. Splits of the first group circulating in some registries are downstream constructions, not part of the WHO standard.

See also

age_standardize(), which consumes these weights.

Examples

who_std_pop
#> # A tibble: 21 × 4
#>    age_group age_start weight std_million
#>    <chr>         <int>  <dbl>       <int>
#>  1 0-4               0   8.86       88569
#>  2 5-9               5   8.69       86870
#>  3 10-14            10   8.6        85970
#>  4 15-19            15   8.47       84670
#>  5 20-24            20   8.22       82171
#>  6 25-29            25   7.93       79272
#>  7 30-34            30   7.61       76073
#>  8 35-39            35   7.15       71475
#>  9 40-44            40   6.59       65877
#> 10 45-49            45   6.04       60379
#> # ℹ 11 more rows

# Aggregate to broad age groups (0-24, 25-64, 65+) for coarser data
breaks <- c(0, 25, 65, Inf)
grp <- cut(who_std_pop$age_start, breaks, right = FALSE,
           labels = c("0-24", "25-64", "65+"))
tapply(who_std_pop$std_million, grp, sum)
#>   0-24  25-64    65+ 
#> 428250 489428  82322