knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
In the Triple Billions and the billionaiRe package context, scenarios are understood as alternative, plausible, description of how the future may develop based on a set of defined assumptions.
Scenarios must:
Four main sets of scenarios can be identified, from the most basic to the more complex:
scenario_fixed_target()
), follow a specific rate of change (scenario_aroc()
), etc. See Basic scenario for more details.sdg
scenarios)).acceleration
scenarios)If billionaiRe require data that is missing in the scenario, they will be recycled from other scenarios (see Data recycling).
add_scenario()
is the entry point function to all other scenario functions. It essentially allow to pass a typical billionaiRe data frame (df
) and apply the selected scenario function.
library(billionaiRe) df <- tibble::tibble( value = 60:80, year = 2010:2030, ind = "pm25", type = "reported", iso3 = "AFG", scenario = "default", source = NA_character_ ) %>% dplyr::mutate(scenario = dplyr::case_when( year > 2021 ~ "historical", TRUE ~ scenario ), type = dplyr::case_when( year > 2021 ~ "projected", TRUE ~ type ))
The choice of scenario function to apply to the df
is done through the scenario_function
parameter. Additional parameters can be passed through the ellipsis (...
).
For instance, to halt the rise to the 2010 value by end_year
(2025 by default), we can apply a simple function to df
. This will apply the halt_rise
function to all unique combination of country and indicator. In this case, there is just one combination:
df %>% add_scenario( scenario_function = "halt_rise", baseline_year = 2010 )
To apply the SDG targets, we use the sdg
:
df %>% add_scenario( scenario_function = "sdg" )
By default, the scenarios start from the last reported or estimated value in the default scenario. This can be bypassed by setting start_scenario_last_default
to FALSE. The scenario will then start at start_year
(2018 by default):
df %>% add_scenario( scenario_function = "sdg", start_scenario_last_default = FALSE )
The basic scenarios are the building blocks of all other scenarios. They can also be used by themselves on the data. All basic scenarios functions share have share parameters, but also have their own. See the individual documentation of each function to see the details.
scenario_aroc()
scenario_fixed_target()
, scenario_fixed_target_col()
, scenario_halt_rise()
scenario_percent_baseline()
scenario_linear_change()
, scenario_linear_change_col()
scenario_quantile()
, scenario_best_in_region()
, scenario_top_n_iso3()
scenario_best_of()
, scenario_bau()
See Basic Scenarios documentation for a full description of all availabe basic scenarios.
Target scenarios apply targets that form a coherent ensemble, but that are specific to each indicator. The prime example of this type of scenario is sdg
where each indicator is targeting its SDG target by 2030.
All SDG scenarios definitions can be found in the SDG scenarios documentation.
The other target scenario available in billionaiRe at the moment is accelerate_target
that removes from acceleration scenarios any scenario that is not a target. The result is similar to SDG scenario in spirit but has different results.
By default, the scenario values are trimmed to 2025. This can be changed with the end_year
parameter:
df %>% add_scenario( scenario_function = "sdg", end_year = 2030 )
Benchmarking scenarios are a curated list of four benchmarking scenarios applied to all indicators, with minor variations:
They allow to compare a country trajectories with their peers.
Acceleration scenarios are version of the future that are ambitious yet achievable by countries. They were created in conjonction with WHO technical units.
Acceleration scenarios are fully indicator specific. The Acceleration scenarios documentation provides a full description of each of them.
There are three internal use special case scenario:
routine
: stores the reported
and estimated
datareference_infilling
: stores WHO technical programs projected data (either projected
or imputed
).covid_shock
: stores the data that correspond to the COVID-19 shock.All together those three scenarios are the base scenarios. They are the spine of other scenarios and act then as a filling when scenarios do not contain the required data to build a full time series.
The current Triple Billion data pipeline is composed of four main steps. billionaiRe is dealing only with the calculation step:
The definition of the [Internal use scenarios] scenarios happen in the ingestion
and projection
steps, which are outside of the scope of the billionaiRe package.
Other scenarios are calculated at stage 3 (Calculation), as does the rest of the billionaiRe calculations. Those scenarios can be calculated with the add_scenario()
function.
Within the Triple Billion calculations pipeline, adding the scenarios values should ideally be the first steps (i.e. before transforming the data). However, some event-based and trajectory-based scenarios, might require some level of data recycling before they run. If this is the case, errors should be produced.
Lower Snake case is used
Short and very descriptive names: use verbs as much as possible
Use only commonly understood acronyms and abbreviations
event
scenarios start with them. E.g. covid, pre_covid_bau
routine
is reserved for reported/estimated data
reference_infilling
is reserved for imputed/projected data
default
is reserved for the main data present on the dashboard
acceleration
is reserved for acceleration scenarios / trajectories
sdg
is reserved for sustainable development goals
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.