Climate Impact of Green Bonds at Country and Company Levels
Jun Fang
April 19th, 2024
Why does this matter?
Investors globally are looking to protect their finances while promoting sustainability, amid urgent global issues like climate change, biodiversity erosion, and poverty. For over a decade, bond markets have offered avenues to tackle these issues and progress towards the Sustainable Development Goals (SDGs). Since the World Bank’s inaugural green bond in 2008, the market for bonds funding environmental and social initiatives continues to expand.
Understanding the significance of green bonds is crucial, as they are designed to yield positive environmental impacts. However, assessing their effectiveness is challenging due to the primarily qualitative nature of the information on the environmental projects they fund.
This research aims to examine the correlation between green bond issuances and greenhouse gas (GHG) emissions. Critical climate-related factors about the issuer will be scrutinized, including:
The variability in emissions across different regions and industries for a comparable volume of green bond issuances, along with an exploration of the underlying reasons for such discrepancies.
The company level issuer’s emissions trajectory and its overall impact on the climate.
Methodology
To do this analysis, I combined four three sets.
· The Issuance by Region Data from Climate Bonds summarizes a green bonds issuance across regions and industry among the years.
This part examines the relationship between green bond issuance and green bond emissions among various regions.
Overall, there seems to be a trend where emissions decrease as more green bonds are issued, suggesting a positive correlation between green financing and sustainability outcomes. However, some fluctuations in this trend necessitate further investigation to understand the complexities behind these variations.
Asia-Pacific Emissions Increase with Issuance:
The sudden increase in emissions in the Asia-Pacific region with increased issuance could be due to a number of factors. One possibility is that the funds are being invested in long-term projects that initially increase emissions due to construction or development activities before they start yielding emission reductions. Alternatively, this could reflect a transitional phase where investments are made into cleaner, but not zero-emission, energy sources (like natural gas as a replacement for coal), which reduce overall emissions but not immediately to a level lower than before the investments. It might also suggest that while green bonds are being issued, the projects they are funding in the Asia-Pacific may not be as emission-efficient or -reductive as those in other regions, or there may be a time lag before the emissions benefits of these investments are realized.
Code
#Select specific columnsannual_greenhouse_gas_air_emissions <-read.csv("emission by region.csv")selected_annual_greenhouse_gas_air_emissions <-select(annual_greenhouse_gas_air_emissions, 2, 11, 19:27)renamed_selected_annual_greenhouse_gas_air_emissions <- selected_annual_greenhouse_gas_air_emissions %>%mutate(Region =case_when( Country %in%c("Northern Africa", "Sub-Saharan Africa") ~"Africa", Country %in%c("Central Asia", "Eastern Asia", "South-eastern Asia", "Southern Asia", "Western Asia") ~"Asia-Pacific", Country %in%c("Eastern Europe", "Northern Europe", "Southern Europe", "Western Europe") ~"Europe", Country =="Latin America and the Caribbean"~"Latin America", Country %in%c("Americas", "Northern America") ~"North America",TRUE~"Other" ) )#rearrange the columns to make "Region" the first columnrenamed_selected_annual_greenhouse_gas_air_emissions <- renamed_selected_annual_greenhouse_gas_air_emissions %>%select(Region, everything())# Group by 'Region' and then summarise each numerical column by summing upcombined_annual_greenhouse_gas_air_emissions <- renamed_selected_annual_greenhouse_gas_air_emissions %>%group_by(Region) %>%summarise(across(where(is.numeric), sum, na.rm =TRUE))# Convert all year columns to numericgreen_bonds_emissions <- combined_annual_greenhouse_gas_air_emissions %>%mutate(across(-Region, as.numeric, .names ="converted_{.col}"))green_bonds_emissions_long <- green_bonds_emissions %>%pivot_longer(cols =starts_with("converted_"), # Now selecting the converted columnsnames_to ="Year",names_prefix ="converted_X", # Remove the 'converted_' prefix from the year namesvalues_to ="GreenBondsEmissions" )library(here)library(readxl)# Construct the pathpath_to_sheet <-"/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/green bond by region.xlsx"# Read the Excel filegreen_bond_by_region<-read_excel (path_to_sheet)green_bond_issuance_by_region <- green_bond_by_region %>%rename(Region = Country)green_bond_issuance_by_region <- green_bond_issuance_by_region %>%mutate(across(-Region, as.numeric, .names ="converted_{.col}"))green_bonds_issuance_long <- green_bond_issuance_by_region %>%pivot_longer(cols =starts_with("converted_"), # Now selecting the converted columnsnames_to ="Year",names_prefix ="converted_", # Remove the 'converted_' prefix from the year namesvalues_to ="GreenBondsIssuance" )# Assuming emissions_long is also preparedcombined_green_bonds_emission_comparison <-left_join(green_bonds_issuance_long, green_bonds_emissions_long, by =c("Region", "Year"))# Selecting specific columnscombined_green_bonds_emission_comparison2 <- combined_green_bonds_emission_comparison %>%na.omit()p <-ggplot(combined_green_bonds_emission_comparison2, aes(x = GreenBondsIssuance, y = GreenBondsEmissions, size = GreenBondsEmissions, color = Region,text =paste("Year:", Year, "<br>","Issuance:", GreenBondsIssuance, "<br>","Emissions:", GreenBondsEmissions))) +geom_point(alpha =0.4) +theme_pander() +xlab("Green Bonds Issuance") +ylab("Green Bonds Emissions") +scale_x_log10() +scale_y_log10() +ggtitle("Relationship between Green Bonds Emissions and Issuance") +theme(legend.position ="right")# Convert to an interactive plot with customized tooltipsggplotly_obj <-ggplotly(p, tooltip ="text")# Print the plotly object to display the interactive plotggplotly_obj
Mapping Climate Impact by Continent
This map provides a more visualized summary analysis of GHC Emissions across the world.
Code
combined_green_bonds_emission_comparison2 %>%select(-GreenBondsIssuance) %>%na.omit() %>%filter(Region %in%c("Africa", "Asia-Pacific", "Europe", "Latin America", "North America")) -> data.subdata.sub %>%mutate(Region =case_when(Region =="Asia-Pacific"~"Eurasia", Region =="Europe"~"Eurasia", Region =="Latin America"~"South America", Region =="North America"~"North America", Region =="Africa"~"Africa")) -> data.sub# get coarse resolution world from rworldmapsPDF <-getMap()country_continent.df <-data.frame(Country = sPDF$ISO3, Region = sPDF$continent)country_continent.df %>%left_join(data.sub, by ="Region") -> country_continent.df2plot_ly(country_continent.df2, type='choropleth', locations=country_continent.df2$Country, z=country_continent.df2$GreenBondsEmissions, text=country_continent.df2$Region, colors ="Greens") -> fig# specify map projection/optionsg <-list(showframe = F,showland = T,landcolor =toRGB("grey"))fig %>%layout(title ="GHC Emissions By Continent", geo = g)
Comparison by Industry
This research also examines the relationship between green bond issuance and green bond emissions across different industries.
Discrepancy in Emissions Between Building and Energy Industries:
Despite similar levels of bond issuance, the Building industry might be showing lower emissions compared to the Energy industry due to several factors. Buildings can implement green technologies like efficient insulation, smart energy systems, and renewable energy sources that result in immediate emission reductions. On the other hand, the Energy industry might be in the process of transitioning to greener alternatives, such as shifting from fossil fuels to renewable energy sources, which can be a long-term process with emissions reductions only realized over a more extended period.
Transport Industry’s Issuance vs. Emissions:
The Transport industry shows a decrease in emissions with increased bond issuance. This could be a result of the industry’s efforts in electrifying transportation, such as electric vehicles (EVs), which are less emission-intensive than traditional combustion engines. As more funds are allocated to such projects, the emissions per dollar of bond issuance could decline. For other industries, the volatility in emissions despite the increase in bond issuance may reflect the diverse nature of projects funded by green bonds. Some projects may have direct emission reduction impacts, while others may have indirect or longer-term benefits. Furthermore, it may also indicate varying efficiencies in how effectively each industry uses the proceeds from green bonds to achieve emission reductions.
These findings reinforces the need to explore more mechanisms that fitted in the natural of each industries, so as to maximize the climate impact of green bonds.
Code
renamed_industry_selected_annual_greenhouse_gas_air_emissions <- selected_annual_greenhouse_gas_air_emissions %>%mutate(Industries =case_when( Industry =="Electricity, Gas, Steam and Air Conditioning Supply"~"Energy", Industry =="Construction"~"Buildings", Industry =="Transportation and Storage"~"Transport", Industry =="Water supply; sewerage, waste management and remediation activities"~"Water", Industry =="Total Households"~"Land Use",TRUE~"Other" ) )%>%filter(Industries !="Other")path_to_sheet <-"/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/green bond by industry.xlsx"green_bond_by_industry <-read_excel(path_to_sheet)renamed_green_bond_issuance_by_industry <- green_bond_by_industry%>%rename(Industries = Industry) %>%filter(Industries %in%c("Energy", "Buildings", "Transport", "Water", "Land Use"))# Convert all year columns to numericgreen_bonds_emissions_by_industry_sums <- renamed_industry_selected_annual_greenhouse_gas_air_emissions %>%group_by(Industries) %>%summarise(Sum2014 =sum(X2014, na.rm =TRUE),Sum2015 =sum(X2015, na.rm =TRUE),Sum2016 =sum(X2016, na.rm =TRUE),Sum2017 =sum(X2017, na.rm =TRUE),Sum2018 =sum(X2018, na.rm =TRUE),Sum2019 =sum(X2019, na.rm =TRUE),Sum2020 =sum(X2020, na.rm =TRUE),Sum2021 =sum(X2021, na.rm =TRUE),Sum2022 =sum(X2022, na.rm =TRUE), )green_bonds_emissions_by_industry <- green_bonds_emissions_by_industry_sums %>%mutate(across(-Industries, as.numeric, .names ="converted_{.col}"))green_bonds_emissions_by_industry_long <- green_bonds_emissions_by_industry %>%pivot_longer(cols =starts_with("converted_"), # Now selecting the converted columnsnames_to ="Year",names_prefix ="converted_Sum", # Remove the 'converted_' prefix from the year namesvalues_to ="GreenBondsEmissions" )converted_renamed_green_bond_issuance_by_industry <- renamed_green_bond_issuance_by_industry %>%mutate(across(-Industries, as.numeric, .names ="converted_{.col}"))renamed_green_bond_issuance_by_industry_long <- converted_renamed_green_bond_issuance_by_industry %>%pivot_longer(cols =starts_with("converted_"), # Now selecting the converted columnsnames_to ="Year",names_prefix ="converted_", # Remove the 'converted_' prefix from the year namesvalues_to ="GreenBondsIssuance" )combined_green_bonds_emission_industry_comparison <-left_join(renamed_green_bond_issuance_by_industry_long, green_bonds_emissions_by_industry_long, by =c("Industries", "Year"))# Selecting specific columnscombined_green_bonds_emission_industry_comparison2 <- combined_green_bonds_emission_industry_comparison %>%select(Industries, Year, GreenBondsIssuance, GreenBondsEmissions)# Selecting specific columnscombined_green_bonds_emission_industry_comparison3 <- combined_green_bonds_emission_industry_comparison2 %>%select(Industries, Year, GreenBondsIssuance, GreenBondsEmissions) %>%na.omit()p <-ggplot(combined_green_bonds_emission_industry_comparison3, aes(x = GreenBondsIssuance, y = GreenBondsEmissions, size = GreenBondsEmissions, color = Industries,text =paste("Emissions:", GreenBondsEmissions, "<br>","Year:", Year, "<br>","Issuance:", GreenBondsIssuance))) +geom_point(alpha =0.4) +theme_pander() +xlab("Green Bonds Issuance") +ylab("Green Bonds Emissions") +scale_x_log10() +scale_y_log10() +ggtitle("Relationship between Green Bonds Emissions and Issuance (Industry)") +theme(legend.position ="right")# Use ggplotly to convert the plot to an interactive plotggplotly_obj <-ggplotly(p, tooltip ="text") # Tooltip will display text defined in ggplot# Print the plotly object to display itggplotly_obj
Green bonds and climate: Company level case study
One of the key attractions of green bonds is the green projects that they finance. Yet information on these projects is highly qualitative, making it hard to compare green bonds.
This study adopted a financed-emissions metric from the International Capital Markets Association’s (ICMA) and MSCI, with TPF green bond method to estimate the tCO2E/USD million of bond outstanding for 15 bondds. With aiming to provide a quantitative basis to compare climate impact of green bonds, this study also try to find out if there’re certain consistency between green bonds with higher climate return.
This case study chooses 18 green bonds issued by 14 European firms. Of the 14 firms, three have ITRs (which represents climate impact) below 1.5°C: Iberdrola, PostNL, and Prologis Inc. However, all have negative Climate VaRs (climate risk).
Higher values of EUR outstanding amount are distributed across a range of Climate VaRs, which suggests that there isn’t a simple linear relationship between how much a company has issued in green bonds and the associated climate risk.
A commercially-minded investor might seek out firms with postive Climate VaR readings. Impact investors might seek out firms with positive Climate VaR readings, while also looking to avoid bonds issued by firms with high ITR figures.
Code
path_to_sheet <-"/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/ bond and company level data.xlsx"X_bond_and_company_level_data <-read_excel(path_to_sheet)X_bond_and_company_level_data %>%rename("Climate VaR"="Climate\r\nVaR") %>%rename("EUROutstanding Amount"="EUROutstanding\r\nAmount") %>%mutate(`Climate VaR`=`Climate VaR`%>%as.numeric(), `EUROutstanding Amount`=`EUROutstanding Amount`%>%as.numeric()) %>%na.omit() %>%ggplot() +geom_point(aes(x =`Climate VaR`, y =`EUROutstanding Amount`, color = IssuerName, size =`Climate VaR`), alpha =1) +theme_pander() +theme(axis.text.x =element_text(angle =45, hjust =1)) +scale_x_continuous(n.breaks =10) +geom_label_repel(aes(x =`Climate VaR`, y =`EUROutstanding Amount`, label = IssuerName, color = IssuerName), box.padding =unit (.25,"lines"),point.padding =unit (.25, "lines"),segment.color ='grey50', show_guide=T) +theme(legend.position ="none")
Source Code
---title: "FinalProject"format: htmleditor: visualcode-fold: truecode-tools: true---## **Climate Impact of Green Bonds at Country and Company Levels**##### **Jun Fang**##### **April 19th, 2024**## **Why does this matter?**Investors globally are looking to protect their finances while promoting sustainability, amid urgent global issues like climate change, biodiversity erosion, and poverty. For over a decade, bond markets have offered avenues to tackle these issues and progress towards the Sustainable Development Goals (SDGs). Since the World Bank's inaugural green bond in 2008, the market for bonds funding environmental and social initiatives continues to expand.Understanding the significance of green bonds is crucial, as they are designed to yield positive environmental impacts. However, assessing their effectiveness is challenging due to the primarily qualitative nature of the information on the environmental projects they fund.This research aims to examine the correlation between green bond issuances and greenhouse gas (GHG) emissions. Critical climate-related factors about the issuer will be scrutinized, including:- The variability in emissions across different regions and industries for a comparable volume of green bond issuances, along with an exploration of the underlying reasons for such discrepancies.- The company level issuer's emissions trajectory and its overall impact on the climate.## **Methodology**To do this analysis, I combined four three sets.· The Issuance by Region Data from [Climate Bonds](https://www.climatebonds.net/market/data/) summarizes a green bonds issuance across regions and industry among the years.· The International Monetary Fund’s [Annual Greenhouse Gas (GHG) Air Emissions Accounts](https://climatedata.imf.org/datasets/c8579761f19740dfbe4418b205654ddf_0/explore) contains annual greenhouse gas emissions by industry and by region.· The MSCI’s [Green Bonds and Climate](https://www.msci.com/documents/10199/d871c6db-a0c3-5e37-6fa9-a5a00f67ab73) provides a concrete case study including bond- and company-level dataThe foled code below provided outlines the process for importing, cleaning and merging the data.```{r, warning=FALSE}#| message: false# options(repos = c(CRAN = "https://cran.rstudio.com/"))library(here) library(purrr)library(readxl)library(tidyr)library(dplyr)library(tidyverse)library(ggthemes)library(plotly)library(rworldmap)library(ggrepel)# knitr::opts_knit$set(root.dir = "/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper")```## **Comparison by Region**This part examines the relationship between green bond issuance and green bond emissions among various regions.Overall, there seems to be a trend where emissions decrease as more green bonds are issued, suggesting a positive correlation between green financing and sustainability outcomes. However, some fluctuations in this trend necessitate further investigation to understand the complexities behind these variations.\**Asia-Pacific Emissions Increase with Issuance:**\The sudden increase in emissions in the Asia-Pacific region with increased issuance could be due to a number of factors. One possibility is that the funds are being invested in long-term projects that initially increase emissions due to construction or development activities before they start yielding emission reductions. Alternatively, this could reflect a transitional phase where investments are made into cleaner, but not zero-emission, energy sources (like natural gas as a replacement for coal), which reduce overall emissions but not immediately to a level lower than before the investments. It might also suggest that while green bonds are being issued, the projects they are funding in the Asia-Pacific may not be as emission-efficient or -reductive as those in other regions, or there may be a time lag before the emissions benefits of these investments are realized.```{r, warning=FALSE}#| message: false#Select specific columnsannual_greenhouse_gas_air_emissions <- read.csv("emission by region.csv")selected_annual_greenhouse_gas_air_emissions <- select(annual_greenhouse_gas_air_emissions, 2, 11, 19:27)renamed_selected_annual_greenhouse_gas_air_emissions <- selected_annual_greenhouse_gas_air_emissions %>% mutate( Region = case_when( Country %in% c("Northern Africa", "Sub-Saharan Africa") ~ "Africa", Country %in% c("Central Asia", "Eastern Asia", "South-eastern Asia", "Southern Asia", "Western Asia") ~ "Asia-Pacific", Country %in% c("Eastern Europe", "Northern Europe", "Southern Europe", "Western Europe") ~ "Europe", Country == "Latin America and the Caribbean" ~ "Latin America", Country %in% c("Americas", "Northern America") ~ "North America", TRUE ~ "Other" ) )#rearrange the columns to make "Region" the first columnrenamed_selected_annual_greenhouse_gas_air_emissions <- renamed_selected_annual_greenhouse_gas_air_emissions %>% select(Region, everything())# Group by 'Region' and then summarise each numerical column by summing upcombined_annual_greenhouse_gas_air_emissions <- renamed_selected_annual_greenhouse_gas_air_emissions %>% group_by(Region) %>% summarise(across(where(is.numeric), sum, na.rm = TRUE))# Convert all year columns to numericgreen_bonds_emissions <- combined_annual_greenhouse_gas_air_emissions %>% mutate(across(-Region, as.numeric, .names = "converted_{.col}"))green_bonds_emissions_long <- green_bonds_emissions %>% pivot_longer( cols = starts_with("converted_"), # Now selecting the converted columns names_to = "Year", names_prefix = "converted_X", # Remove the 'converted_' prefix from the year names values_to = "GreenBondsEmissions" )library(here)library(readxl)# Construct the pathpath_to_sheet <- "/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/green bond by region.xlsx"# Read the Excel filegreen_bond_by_region<- read_excel (path_to_sheet)green_bond_issuance_by_region <- green_bond_by_region %>% rename(Region = Country)green_bond_issuance_by_region <- green_bond_issuance_by_region %>% mutate(across(-Region, as.numeric, .names = "converted_{.col}"))green_bonds_issuance_long <- green_bond_issuance_by_region %>% pivot_longer( cols = starts_with("converted_"), # Now selecting the converted columns names_to = "Year", names_prefix = "converted_", # Remove the 'converted_' prefix from the year names values_to = "GreenBondsIssuance" )# Assuming emissions_long is also preparedcombined_green_bonds_emission_comparison <- left_join(green_bonds_issuance_long, green_bonds_emissions_long, by = c("Region", "Year"))# Selecting specific columnscombined_green_bonds_emission_comparison2 <- combined_green_bonds_emission_comparison %>% na.omit()p <- ggplot(combined_green_bonds_emission_comparison2, aes(x = GreenBondsIssuance, y = GreenBondsEmissions, size = GreenBondsEmissions, color = Region, text = paste("Year:", Year, "<br>", "Issuance:", GreenBondsIssuance, "<br>", "Emissions:", GreenBondsEmissions))) + geom_point(alpha = 0.4) + theme_pander() + xlab("Green Bonds Issuance") + ylab("Green Bonds Emissions") + scale_x_log10() + scale_y_log10() + ggtitle("Relationship between Green Bonds Emissions and Issuance") + theme(legend.position = "right")# Convert to an interactive plot with customized tooltipsggplotly_obj <- ggplotly(p, tooltip = "text")# Print the plotly object to display the interactive plotggplotly_obj```## **Mapping Climate Impact by Continent**This map provides a more visualized summary analysis of GHC Emissions across the world.```{r, warning=FALSE}#| message: falsecombined_green_bonds_emission_comparison2 %>% select(-GreenBondsIssuance) %>% na.omit() %>% filter(Region %in% c("Africa", "Asia-Pacific", "Europe", "Latin America", "North America")) -> data.subdata.sub %>% mutate(Region = case_when(Region == "Asia-Pacific" ~ "Eurasia", Region == "Europe" ~ "Eurasia", Region == "Latin America" ~ "South America", Region == "North America" ~ "North America", Region == "Africa" ~ "Africa")) -> data.sub# get coarse resolution world from rworldmapsPDF <- getMap()country_continent.df <- data.frame(Country = sPDF$ISO3, Region = sPDF$continent)country_continent.df %>% left_join(data.sub, by = "Region") -> country_continent.df2plot_ly(country_continent.df2, type='choropleth', locations=country_continent.df2$Country, z=country_continent.df2$GreenBondsEmissions, text=country_continent.df2$Region, colors = "Greens") -> fig# specify map projection/optionsg <- list( showframe = F, showland = T, landcolor = toRGB("grey"))fig %>% layout(title = "GHC Emissions By Continent", geo = g)```## **Comparison by Industry**This research also examines the relationship between green bond issuance and green bond emissions across different industries.**Discrepancy in Emissions Between Building and Energy Industries:**Despite similar levels of bond issuance, the Building industry might be showing lower emissions compared to the Energy industry due to several factors. Buildings can implement green technologies like efficient insulation, smart energy systems, and renewable energy sources that result in immediate emission reductions. On the other hand, the Energy industry might be in the process of transitioning to greener alternatives, such as shifting from fossil fuels to renewable energy sources, which can be a long-term process with emissions reductions only realized over a more extended period.**Transport Industry’s Issuance vs. Emissions:**The Transport industry shows a decrease in emissions with increased bond issuance. This could be a result of the industry's efforts in electrifying transportation, such as electric vehicles (EVs), which are less emission-intensive than traditional combustion engines. As more funds are allocated to such projects, the emissions per dollar of bond issuance could decline. For other industries, the volatility in emissions despite the increase in bond issuance may reflect the diverse nature of projects funded by green bonds. Some projects may have direct emission reduction impacts, while others may have indirect or longer-term benefits. Furthermore, it may also indicate varying efficiencies in how effectively each industry uses the proceeds from green bonds to achieve emission reductions.These findings reinforces the need to explore more mechanisms that fitted in the natural of each industries, so as to maximize the climate impact of green bonds.```{r, warning=FALSE}#| message: falserenamed_industry_selected_annual_greenhouse_gas_air_emissions <- selected_annual_greenhouse_gas_air_emissions %>% mutate( Industries = case_when( Industry == "Electricity, Gas, Steam and Air Conditioning Supply" ~ "Energy", Industry == "Construction" ~ "Buildings", Industry == "Transportation and Storage" ~ "Transport", Industry == "Water supply; sewerage, waste management and remediation activities" ~ "Water", Industry == "Total Households" ~ "Land Use", TRUE ~ "Other" ) )%>% filter(Industries != "Other")path_to_sheet <- "/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/green bond by industry.xlsx" green_bond_by_industry <- read_excel(path_to_sheet)renamed_green_bond_issuance_by_industry <- green_bond_by_industry%>%rename(Industries = Industry) %>% filter(Industries %in% c("Energy", "Buildings", "Transport", "Water", "Land Use"))# Convert all year columns to numericgreen_bonds_emissions_by_industry_sums <- renamed_industry_selected_annual_greenhouse_gas_air_emissions %>% group_by(Industries) %>% summarise( Sum2014 = sum(X2014, na.rm = TRUE), Sum2015 = sum(X2015, na.rm = TRUE), Sum2016 = sum(X2016, na.rm = TRUE), Sum2017 = sum(X2017, na.rm = TRUE), Sum2018 = sum(X2018, na.rm = TRUE), Sum2019 = sum(X2019, na.rm = TRUE), Sum2020 = sum(X2020, na.rm = TRUE), Sum2021 = sum(X2021, na.rm = TRUE), Sum2022 = sum(X2022, na.rm = TRUE), )green_bonds_emissions_by_industry <- green_bonds_emissions_by_industry_sums %>% mutate(across(-Industries, as.numeric, .names = "converted_{.col}"))green_bonds_emissions_by_industry_long <- green_bonds_emissions_by_industry %>% pivot_longer( cols = starts_with("converted_"), # Now selecting the converted columns names_to = "Year", names_prefix = "converted_Sum", # Remove the 'converted_' prefix from the year names values_to = "GreenBondsEmissions" )converted_renamed_green_bond_issuance_by_industry <- renamed_green_bond_issuance_by_industry %>% mutate(across(-Industries, as.numeric, .names = "converted_{.col}"))renamed_green_bond_issuance_by_industry_long <- converted_renamed_green_bond_issuance_by_industry %>% pivot_longer( cols = starts_with("converted_"), # Now selecting the converted columns names_to = "Year", names_prefix = "converted_", # Remove the 'converted_' prefix from the year names values_to = "GreenBondsIssuance" )combined_green_bonds_emission_industry_comparison <- left_join(renamed_green_bond_issuance_by_industry_long, green_bonds_emissions_by_industry_long, by = c("Industries", "Year"))# Selecting specific columnscombined_green_bonds_emission_industry_comparison2 <- combined_green_bonds_emission_industry_comparison %>% select(Industries, Year, GreenBondsIssuance, GreenBondsEmissions)# Selecting specific columnscombined_green_bonds_emission_industry_comparison3 <- combined_green_bonds_emission_industry_comparison2 %>% select(Industries, Year, GreenBondsIssuance, GreenBondsEmissions) %>% na.omit()p <- ggplot(combined_green_bonds_emission_industry_comparison3, aes(x = GreenBondsIssuance, y = GreenBondsEmissions, size = GreenBondsEmissions, color = Industries, text = paste("Emissions:", GreenBondsEmissions, "<br>", "Year:", Year, "<br>", "Issuance:", GreenBondsIssuance))) + geom_point(alpha = 0.4) + theme_pander() + xlab("Green Bonds Issuance") + ylab("Green Bonds Emissions") + scale_x_log10() + scale_y_log10() + ggtitle("Relationship between Green Bonds Emissions and Issuance (Industry)") + theme(legend.position = "right")# Use ggplotly to convert the plot to an interactive plotggplotly_obj <- ggplotly(p, tooltip = "text") # Tooltip will display text defined in ggplot# Print the plotly object to display itggplotly_obj```## **Green bonds and climate: Company level case study**One of the key attractions of green bonds is the green projects that they finance. Yet information on these projects is highly qualitative, making it hard to compare green bonds.This study adopted a financed-emissions metric from the International Capital Markets Association’s (ICMA) and MSCI, with TPF green bond method to estimate the tCO2E/USD million of bond outstanding for 15 bondds. With aiming to provide a quantitative basis to compare climate impact of green bonds, this study also try to find out if there’re certain consistency between green bonds with higher climate return.This case study chooses 18 green bonds issued by 14 European firms. Of the 14 firms, three have ITRs (which represents climate impact) below 1.5°C: Iberdrola, PostNL, and Prologis Inc. However, all have negative Climate VaRs (climate risk).Higher values of EUR outstanding amount are distributed across a range of Climate VaRs, which suggests that there isn't a simple linear relationship between how much a company has issued in green bonds and the associated climate risk.A commercially-minded investor might seek out firms with postive Climate VaR readings. Impact investors might seek out firms with positive Climate VaR readings, while also looking to avoid bonds issued by firms with high ITR figures.```{r, warning=FALSE}#| message: falsepath_to_sheet <- "/Users/fangjun/Desktop/Sais/Year 2/Term 2/Sustainable Finance/Final Paper/ bond and company level data.xlsx" X_bond_and_company_level_data <- read_excel(path_to_sheet)X_bond_and_company_level_data %>% rename("Climate VaR" = "Climate\r\nVaR") %>% rename("EUROutstanding Amount" = "EUROutstanding\r\nAmount") %>% mutate(`Climate VaR` = `Climate VaR` %>% as.numeric(), `EUROutstanding Amount` = `EUROutstanding Amount` %>% as.numeric()) %>% na.omit() %>% ggplot() + geom_point(aes(x = `Climate VaR`, y = `EUROutstanding Amount`, color = IssuerName, size = `Climate VaR`), alpha = 1) + theme_pander() + theme(axis.text.x = element_text(angle = 45, hjust = 1)) + scale_x_continuous(n.breaks = 10) + geom_label_repel(aes(x = `Climate VaR`, y = `EUROutstanding Amount`, label = IssuerName, color = IssuerName), box.padding = unit (.25,"lines"), point.padding = unit (.25, "lines"), segment.color = 'grey50', show_guide=T) + theme(legend.position = "none")```