Descriptive analysis of best case and worst case for transition risk profile
Source:vignettes/articles/descriptive-analysis-best_case_worst_case_transition_risk_profile.Rmd
descriptive-analysis-best_case_worst_case_transition_risk_profile.Rmd
This article shows how to calculate the descriptive analysis of equal weight, best case, and worst case for transition risk profile.
Example company-level output of transition risk profile for equal weight, best case, and worst case
companies_id | country | grouping_transition_risk | avg_transition_risk_equal_weight | avg_transition_risk_best_case | avg_transition_risk_worst_case |
---|---|---|---|---|---|
comp_1 | france | 1.5C RPS_2030_unit | 0.25 | 0.25 | 0.25 |
comp_1 | france | NZ 2050_2030_unit | 0.85 | 0.85 | 0.85 |
comp_2 | france | 1.5C RPS_2030_unit | 0.10 | 0.10 | 0.10 |
comp_2 | france | NZ 2050_2030_unit | 0.30 | 0.30 | 0.30 |
comp_3 | austria | 1.5C RPS_2030_unit | 0.35 | 0.35 | 0.35 |
comp_3 | austria | NZ 2050_2030_unit | 0.55 | 0.55 | 0.55 |
comp_4 | austria | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_4 | austria | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_5 | germany | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_5 | germany | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_6 | netherlands | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_6 | netherlands | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_7 | spain | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_7 | spain | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
Functions
avg_per_benchmark_risk_category <- function(data, col, threshold, benchmark) {
data |>
select(all_of(c("companies_id", "grouping_transition_risk", col))) |>
distinct() |>
left_join(threshold, by = c("grouping_transition_risk")) |>
mutate(risk_category = categorize_risk(.data[[col]], transition_risk_low_threshold, transition_risk_high_threshold)) |>
filter(!is.na(.data[[col]])) |>
summarise(total_mode = n(), .by = c("grouping_transition_risk", "risk_category")) |>
mutate(proportion = total_mode / sum(total_mode), .by = c("grouping_transition_risk")) |>
select(-all_of(c("total_mode"))) |>
distinct() |>
filter(str_detect(grouping_transition_risk, paste0(benchmark, "$"))) |>
filter(!str_detect(grouping_transition_risk, "NA")) |>
arrange(grouping_transition_risk)
}
score_colors <- function(...) c("low" = "#B3D15D", "medium" = "#F6CB4E", "high" = "#E3693B")
fill_score_colors <- function() scale_fill_manual(values = score_colors())
plot_bar_plot_profile_benchmark <- function(data, col) {
data <- data %>%
mutate(risk_category = factor(risk_category, levels = c("high", "medium", "low")))
ggplot(data, aes(x = .data[[col]], y = .data$grouping_transition_risk, fill = .data$risk_category)) +
geom_col(position = position_stack(reverse = TRUE), width = 0.5) +
fill_score_colors() +
tiltPlot::theme_tiltplot() +
xlim(0, NA)
}
Bar plots for companies share of
avg_transition_risk_equal_weight
per
grouping_transition_risk
and
transition_risk_category
Bar plots for companies share of
avg_transition_risk_best_case
per
grouping_transition_risk
and
transition_risk_category
Bar plots for companies share of
avg_transition_risk_worst_case
per
grouping_transition_risk
and
transition_risk_category
Bar plots for companies share of
avg_transition_risk_equal_weight
per
grouping_transition_risk
and
transition_risk_category
for a country
Bar plots for companies share of
avg_transition_risk_best_case
per
grouping_transition_risk
and
transition_risk_category
for a country
Bar plots for companies share of
avg_transition_risk_worst_case
per
grouping_transition_risk
and
transition_risk_category
for a country
Example company-level output of transition risk profile for best case and worst case
companies_id | country | grouping_transition_risk | avg_transition_risk_equal_weight | avg_transition_risk_best_case | avg_transition_risk_worst_case |
---|---|---|---|---|---|
comp_1 | france | 1.5C RPS_2030_unit | 0.25 | 0.25 | 0.25 |
comp_1 | france | NZ 2050_2030_unit | 0.85 | 0.85 | 0.85 |
comp_2 | france | 1.5C RPS_2030_unit | 0.10 | 0.10 | 0.10 |
comp_2 | france | NZ 2050_2030_unit | 0.30 | 0.30 | 0.30 |
comp_3 | austria | 1.5C RPS_2030_unit | 0.35 | 0.35 | 0.35 |
comp_3 | austria | NZ 2050_2030_unit | 0.55 | 0.55 | 0.55 |
comp_4 | austria | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_4 | austria | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_5 | germany | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_5 | germany | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_6 | netherlands | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_6 | netherlands | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
comp_7 | spain | 1.5C RPS_2030_unit | 0.70 | 0.70 | 0.70 |
comp_7 | spain | NZ 2050_2030_unit | 0.20 | 0.20 | 0.20 |
Descriptive analysis of
avg_transition_risk_equal_weight
per
grouping_transition_risk
avg_transition_risk_equal_weight
|
||||
---|---|---|---|---|
grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
1.5C RPS_2030_unit | 0.5000000 | 0.7 | 0.3 | 0.700 |
NZ 2050_2030_unit | 0.3571429 | 0.2 | 0.2 | 0.425 |
Descriptive analysis of avg_transition_risk_best_case
per grouping_transition_risk
avg_transition_risk_best_case
|
||||
---|---|---|---|---|
grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
1.5C RPS_2030_unit | 0.5000000 | 0.7 | 0.3 | 0.700 |
NZ 2050_2030_unit | 0.3571429 | 0.2 | 0.2 | 0.425 |
Descriptive analysis of avg_transition_risk_worst_case
per grouping_transition_risk
avg_transition_risk_worst_case
|
||||
---|---|---|---|---|
grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
1.5C RPS_2030_unit | 0.5000000 | 0.7 | 0.3 | 0.700 |
NZ 2050_2030_unit | 0.3571429 | 0.2 | 0.2 | 0.425 |
Descriptive analysis of
avg_transition_risk_equal_weight
per
grouping_transition_risk
for a country
avg_transition_risk_equal_weight
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
france | 1.5C RPS_2030_unit | 0.175 | 0.175 | 0.1375 | 0.2125 |
france | NZ 2050_2030_unit | 0.575 | 0.575 | 0.4375 | 0.7125 |
avg_transition_risk_equal_weight
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
austria | 1.5C RPS_2030_unit | 0.525 | 0.525 | 0.4375 | 0.6125 |
austria | NZ 2050_2030_unit | 0.375 | 0.375 | 0.2875 | 0.4625 |
avg_transition_risk_equal_weight
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
germany | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
germany | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_equal_weight
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
netherlands | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
netherlands | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_equal_weight
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
spain | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
spain | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
Descriptive analysis of avg_transition_risk_best_case
per grouping_transition_risk
for a country
avg_transition_risk_best_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
france | 1.5C RPS_2030_unit | 0.175 | 0.175 | 0.1375 | 0.2125 |
france | NZ 2050_2030_unit | 0.575 | 0.575 | 0.4375 | 0.7125 |
avg_transition_risk_best_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
austria | 1.5C RPS_2030_unit | 0.525 | 0.525 | 0.4375 | 0.6125 |
austria | NZ 2050_2030_unit | 0.375 | 0.375 | 0.2875 | 0.4625 |
avg_transition_risk_best_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
germany | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
germany | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_best_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
netherlands | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
netherlands | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_best_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
spain | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
spain | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
Descriptive analysis of avg_transition_risk_worst_case
per grouping_transition_risk
for a country
avg_transition_risk_worst_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
france | 1.5C RPS_2030_unit | 0.175 | 0.175 | 0.1375 | 0.2125 |
france | NZ 2050_2030_unit | 0.575 | 0.575 | 0.4375 | 0.7125 |
avg_transition_risk_worst_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
austria | 1.5C RPS_2030_unit | 0.525 | 0.525 | 0.4375 | 0.6125 |
austria | NZ 2050_2030_unit | 0.375 | 0.375 | 0.2875 | 0.4625 |
avg_transition_risk_worst_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
germany | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
germany | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_worst_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
netherlands | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
netherlands | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |
avg_transition_risk_worst_case
|
|||||
---|---|---|---|---|---|
country | grouping_transition_risk | average | median | 25th_quantile | 75th_quantile |
spain | 1.5C RPS_2030_unit | 0.7 | 0.7 | 0.7 | 0.7 |
spain | NZ 2050_2030_unit | 0.2 | 0.2 | 0.2 | 0.2 |