View source: R/attribute_lifetable.R
| attribute_lifetable | R Documentation |
This function assesses premature deaths or years of life lost (YLL) attributable to exposure to an environmental stressor using a life table approach.
attribute_lifetable(
age_group,
sex,
bhd_central,
bhd_lower = NULL,
bhd_upper = NULL,
population,
health_outcome = NULL,
min_age = NULL,
max_age = NULL,
approach_exposure = "single_year",
approach_newborns = "without_newborns",
year_of_analysis,
time_horizon = NULL,
fraction_lived = 0.5,
exp_central = NULL,
exp_lower = NULL,
exp_upper = NULL,
cutoff_central = 0,
cutoff_lower = NULL,
cutoff_upper = NULL,
threshold = NULL,
erf_eq_central = NULL,
erf_eq_lower = NULL,
erf_eq_upper = NULL,
rr_central = NULL,
rr_lower = NULL,
rr_upper = NULL,
rr_increment = NULL,
erf_shape = NULL,
prop_pop_exp = 1,
geo_id_micro = "a",
geo_id_macro = NULL,
info = NULL,
main_results_by = NULL
)
age_group |
|
sex |
|
bhd_central, bhd_lower, bhd_upper |
|
population |
|
health_outcome |
|
min_age, max_age |
|
approach_exposure |
|
approach_newborns |
|
year_of_analysis |
|
time_horizon |
|
fraction_lived |
|
exp_central, exp_lower, exp_upper |
|
cutoff_central, cutoff_lower, cutoff_upper |
|
threshold |
|
erf_eq_central, erf_eq_lower, erf_eq_upper |
|
rr_central, rr_lower, rr_upper |
|
rr_increment |
|
erf_shape |
|
prop_pop_exp |
|
geo_id_micro, geo_id_macro |
|
info |
|
main_results_by |
|
Function arguments
age_group
The numeric values must refer to 1 year age groups, e.g. c(0:99).
To convert multi-year/larger age groups to 1 year age groups use the function prepare_lifetable()
(see its function documentation for more info).
main_results_by
Optional argument. By default the impacts of all subgroups, and of all the years of the time horizon, are added up in the main results. That is not meaningful for subgroups that quantify overlapping people in different ways, e.g. different exposure-outcome pairs. Enter their names here to keep them as separate rows. Entering "year" shows the impacts per year of the time horizon. See the vignette chapter Multiple exposure-outcome pairs.
Last age group The life table is closed at the last age group, i.e. its survivors are not projected into a further age. Therefore, the last age group must be one in which essentially all remaining deaths occur, as in most national life tables. Otherwise the attributable health impacts are underestimated. If needed, condensate the last age group (i.e. sum the populations and the deaths of the highest ages into it) instead of adding age groups beyond the data. More information in the vignette.
bhd_central,bhd_lower,bhd_upper
The life table approach is only applicable to all-cause mortality:
the deaths must be all-cause deaths and the exposure-response function must
refer to all-cause mortality. The deaths are used to project how the
population survives over the years, which requires the deaths of all causes.
Cause-specific deaths (e.g. lung cancer) would lead to unrealistically high
survival and therefore to overestimated impacts. For cause-specific mortality,
use attribute_health() instead.
See the vignette chapter YLL and deaths with life table.
Deaths per age must be inputted with 1 value per age (i.e. age group size = 1 year). There must be greater than or equal to 1 deaths per age to avoid issues during the calculation of survival probabilities. If zeros show up in the last ages (e.g. age 98 = 0 deaths, 99 years old = 1), please sum the values and condensate last category (e.g. age 98 = 1).
population
The population data must be inputted with 1 value per age (i.e. age group size = 1 year).
The values must be greater than or equal to 1 per age to avoid issues during the calculation of survival probabilities.
Mid-year population of year x can be approximated as the mean of
either end-year populations of years x-1 and x or start-of-year populations of years x and x+1.
For each age, the inputted values must be greater than or equal to 1
to avoid issues during the calculation of survival probabilities.
approach_newborns
If "with_newborns" is selected, it is assumed that
for each year after the year of analysis n babies (population aged 0) are born.
approach_exposure
Strategy for modeling exposure over time:
"single_year": Air pollution exposure is evaluated for a single year (year of analysis).
Attributable premature deaths are calculated for this year only.
"constant": Air pollution exposure is sustained across the full projection horizon.
Attributable premature deaths and YLLs are accumulated across all years within time_horizon.
time_horizon
Applicable for the following cases:
YLL: single_year or constant exposure
premature deaths: constant exposure
For example, if 10 is entered one is interested in the impacts of exposure
during the year of analysis and the next 9 years (= 10 years in total).
Default value: the number of age groups entered in the age_group argument.
min_age, max_age
Both bounds are inclusive, e.g. min_age = 30 implies that all adults
aged 30 or older will be affected by the exposure and max_age = 69
that no health effects are considered above the age of 69.
By default the exposure affects all age groups, i.e. min_age is the
youngest and max_age the oldest age group entered in age_group.
fraction_lived is by default 0.5 for all age groups, i.e. the value
that AirQ+ assumes. It determines the survival probabilities and matters
most in the age groups with the highest mortality, i.e. the last ones.
See the vignette for how to choose it.
If the single-year age groups were obtained with prepare_lifetable(),
enter here the same fraction_lived that was used there, which is
available in the output column fraction_lived_for_attribute.
Otherwise the life table would be built with an assumption that differs
from the one used for the conversion.
Methodology
The life table approach to obtain YLL and deaths requires population and baseline mortality data to be stratified by one year age groups. This function applies the same approach as the on applied in the WHO tool AirQ+ \insertCiteWHO2020_reporthealthiar, which is described in previous literature \insertCiteMiller2003_jechhealthiar.
Detailed information about the methodology (including equations) is available in the package vignette. More specifically, see chapters:
Conversion of multi-year to single year age groups
To convert multi-year/larger age groups to 1 year age groups,
use the healthiar function prepare_lifetable().
This function returns a list containing:
1) health_main (tibble) containing the main results;
impact (numeric column) attributable health burden/impact
pop_fraction (numeric column) population attributable fraction; only applicable in relative risk assessments
And many more
2) health_detailed (list) containing detailed (and interim) results.
input_args (list) containing all the argument inputs used in the background
input_table (tibble) containing the inputs after preparation
results_raw (tibble) containing results for all combinations of input (geo units, uncertainty, age and sex specific data...)
results_by_... (tibble) containing results stratified by each geographic unit, age or sex.
For this specific function, the return object health_detailed also
contains intermediate_calculations. This is a nested tibble
containing intermediate results, such as population projections and
impact by age/year.
Alberto Castro & Axel Luyten
Upstream:
prepare_exposure (only if no exposure data available)
Alternative: attribute_health,
get_paf, get_risk
Downstream: attribute_mod, compare,
daly, multiexpose,
standardize, monetize, socialize
# Goal: determine YLL attributable to air pollution exposure during one year
# using the life table approach
results <- attribute_lifetable(
health_outcome = "yll",
approach_exposure = "single_year",
approach_newborns = "without_newborns",
exp_central = 8.85,
prop_pop_exp = 1,
cutoff_central = 5,
rr_central = 1.118,
rr_increment = 10,
erf_shape = "log_linear",
age_group = exdat_lifetable$age_group,
sex = exdat_lifetable$sex,
bhd_central = exdat_lifetable$deaths,
population = exdat_lifetable$midyear_population,
year_of_analysis = 2019,
min_age = 20
)
results$health_main$impact # Attributable YLL
# Goal: determine attributable premature deaths due to air pollution exposure
# during one year using the life table approach
results_pm_deaths <- attribute_lifetable(
health_outcome = "deaths",
approach_exposure = "single_year",
exp_central = 8.85,
prop_pop_exp = 1,
cutoff_central = 5,
rr_central = 1.118,
rr_increment = 10,
erf_shape = "log_linear",
age_group = exdat_lifetable$age_group,
sex = exdat_lifetable$sex,
bhd_central = exdat_lifetable$deaths,
population = exdat_lifetable$midyear_population,
year_of_analysis = 2019,
min_age = 20
)
results_pm_deaths$health_main$impact # Attributable premature deaths
# Goal: determine YLL attributable to air pollution exposure (exposure distribution)
# during one year using the life table approach
results <- attribute_lifetable(
health_outcome = "yll",
exp_central = rep(c(8, 9, 10), each = 100*2), # each = length of sex or age_group vector
prop_pop_exp = rep(c(0.2, 0.3, 0.5), each = 100*2), # each = length of sex or age_group vector
cutoff_central = 5,
rr_central = 1.118,
rr_lower = 1.06,
rr_upper = 1.179,
rr_increment = 10,
erf_shape = "log_linear",
age_group = rep(
exdat_lifetable$age_group,
times = 3), # times = number of exposure categories
sex = rep(
exdat_lifetable$sex,
times = 3), # times = number of exposure categories
population = rep(
exdat_lifetable$midyear_population,
times = 3), # times = number of exposure categories
bhd_central = rep(
exdat_lifetable$deaths,
times = 3), # times = number of exposure categories
year_of_analysis = 2019,
min_age = 20
)
results$health_main$impact_rounded # Attributable YLL
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.