Research Question

How does the rate of poverty affect the population with access to clean fuels and technology for cooking and carbon emissions on a global scale?

Data Sources

We used data obtained from the Sustainable Development Report (SDR) 2020 website.

The SDR is an annual report on how well countries in the United Nations are fulfilling the Sustainable Development Goals (SDGs) as set by the UN in 2015. The SDGs are a set of 17 goals, each related to a specific facet of sustainable development, which the UN set in hopes to achieve each by 2030. The data in the SDR are measurable indicators of the progress of each SDG. For example, SDG 1 is “no poverty”, and one measure we chose to focus on is the poverty rate of each country in the UN.

The Sustainable Development Report is published annually by Cambridge University Press. The lead author on this report is Jeffrey Sachs, current Director of the Center for Sustainable Development at Columbia University and President of the UN Sustainable Development Solutions Network (SDSN). The report was created with consultation of the SDSN Leadership Council members.

The data in this file were obtained from both official and unofficial sources. Most come from international organizations, such as the World Bank, OECD, WHO, or UNICEF. These organizations have rigorous data validation processes. Additionally, some data was obtained from household surveys, peer-reviewed journals, and civil society organizations and networks. A full list of the data sources used to compile this data is available on Table 9 of the Sustainable Development Report, from page 74 to page 81 at this site.

The data was processed by the SDSN council members to the extent that they could compile the data into a single workable file. Further processing was performed in other sheets of the same Excel file, but we intend to use the “Raw Trend Data” in our analyses.

There may be observations missing for any countries that are not in the UN. Additionally, there are many NA values within the observations in the data.

In addition to this data, we used the gapminder data frame to organize the SDG data into continents. For this reason, we were only interested in the “country” and “continent” variables in this dataset. Gapminder companies data from multiple sources, and is available as a data frame in the package, “gapminder”.

Analysis & Results

world <- ne_countries(scale="medium",returnclass ="sf") %>%
  filter(continent != "Antarctica")

bivariate <- sdg_data %>%
  filter(! is.na(sdg1_320pov)) %>%
  filter(! is.na(sdg13_co2pc)) %>%
  filter(Year == 2014) %>%
  select(Country, id,Year,sdg1_320pov,sdg13_co2pc) 

world_bivariate <- world %>%
  full_join(bivariate, by = c("iso_a3" = "id"))

bivariateData <- bi_class(world_bivariate,x=sdg1_320pov,y=sdg13_co2pc, style = "quantile", dim = 3)


map <- ggplot() +
  geom_sf(data = bivariateData, mapping = aes(fill = bi_class), color = "grey20",size =0.1,show.legend = FALSE) +
  bi_scale_fill(pal = "GrPink", dim = 3) +
  theme_void() +
  labs(title = "Poverty Rate and Carbon Emissions", subtitle = "Poverty defined at $3.20/day")

legend <- bi_legend(pal = "GrPink", dim = 3, xlab = "Higher Poverty Rate", ylab = "Higher CO2 Emissions", size = 8)

finalPlot <- ggdraw() +
  draw_plot(map,0,0,1,1) +
  draw_plot(legend,0,0.1,0.3,0.3)

finalPlot

First, we will examine a global map displaying CO2 emissions and poverty rates to answer this question. The chart above shows both the poverty rate and carbon emission globally in 2014. This year was selected because there were more data for countries available than in any other year in the dataset. Countries that are more blue have higher CO2 emissions while redder countries have higher poverty rates. The colors that are a combination of both show the intersection of high poverty rates and high CO2 emissions. The desired scenario for a country is a low poverty rate and low CO2 emissions, which would be the lighter values on this map.

It can be seen that generally African countries have the highest poverty rates and very low carbons emissions. Europe, North America, and Australia have more carbon emissions and less poverty. From the comparison between these two variables it seems nations with higher carbon emissions have less poverty, while countries with higher poverty rates have lower emissions. This begs the question: Why do countries with lower poverty rates have higher carbon emissions?

This could be due to the access to technologies which emit carbon. It also makes one wonder if countries with high poverty but low emissions and countries with low poverty rates and high emissions are affected similarly by climate change. We hypothesize that these groups are not affected equally by climate change, because countries with less poverty may have better access to healthcare, fresh produce, clean water, and other resources. However, more data would be necessary to provide a conclusive answer to this question.

gapminder_temp <- gapminder %>%
  select(country, continent)

sdg_continent <- sdg_data %>%
    left_join(gapminder_temp, by = c("Country" = "country")) %>%
    filter(!is.na(continent)) 
sdg_continent_con <- sdg_continent %>%
    filter(!is.na(sdg7_cleanfuel),
           !is.na(continent),
           Year == 2016) %>%
    mutate(concolor = ifelse(continent == "Africa", 1, 0))

mean_cook <- mean(sdg_continent_con$sdg7_cleanfuel)

sdg_continent_con %>%
    ggplot() +
    geom_density_ridges(
        aes(x = sdg7_cleanfuel, y = continent, fill = concolor),
        scale = 1.5, alpha = 0.7) +
    scale_y_discrete(expand = c(0, 0)) +
    scale_x_continuous(expand = c(0, 0)) +
    coord_cartesian(clip = "off") +
      geom_vline(xintercept = mean_cook, col = 'darkgreen',
             linetype = 'dashed') +
      annotate('text', x = (mean_cook + 1), y = 7, hjust = 0,
           label = 'Global average access to clean ',
           color = 'darkgreen') +
      annotate('text', x = (mean_cook + 1), y = 6.7, hjust = 0,
           label = 'cooking fuels',
           color = 'darkgreen') +
    labs(x = 'Population with access to clean fuels and technology for cooking (%)',
         y = 'Continent',
         title = 'Population with access to clean cooking fuels\nacross countries in continents in 2016') +
  theme_classic() + theme(legend.position = "none")

Now that we have examined the global trends, we will examine the continental trends on a ridgeline plot which displays the distribution of access to clean fuels in different countries within each continent. The continental ridgeline plot allows us to show a regional difference in the distribution of access to clean fuels in different countries of each continent.

There is a clear trend that shows Oceanian and European countries have fairly normal distributions, whereas the Americas, Africa, and especially Asia all have higher variance in these distributions. Asia’s distribution appears to be bimodal rather than simply normal, indicating that there may be another regional divide in access to clean fuels and technologies for cooking within Asia itself.

It is also very evident from this chart that Oceania, Europe, and the Americas have high central tendencies relative to the global average access rate to clean fuels and technology for cooking. The central tendency of Asia appears to be generally around the global average between the higher and lower mode. Africa’s central tendency for this distribution is clearly below the global average rate. This is consistent with the map above, which displayed the discrepancy between access to clean fuel in African countries and in the rest of the globe.

plot2 <-  plot_ly(
        data = sdg_continent,
        type = 'scatter',
        x = ~sdg7_cleanfuel,
        y = ~sdg1_320pov,
        size = ~Population,
        color = ~continent,
        text = ~Country,
        frame = ~Year,
        mode = "markers",
        sizes = c(10, 1000),
        marker = list(opacity = 0.5),
        hoverinfo = "text")%>%
        layout(title = "Poverty vs Population with access to clean cooking fuels over time", 
               fill = "Continent", subtitle = "Subtitle",
               xaxis = list(type = "log",title="Population with access to clean fuels and technology for cooking (%)"),
               yaxis = list(title="Population in Poverty with $3.20/day (%)"))
   plot2 

Following the continental view showcasing the distribution of access to clean fuels, we move on to examining the relationship between poverty rate and the percentage of population access to clean fuels. It is displayed over time to better evaluate any global trend as well as the position of a specific country in a continent. The points on the chart represent the corresponding country with the size of the point indicating the population of the country and the continents are categorized based on color.

Overall, a high negative correlation of -0.899 is observed as with the rise in the percentage of the population with access to clean fuel, the percentage of population poverty follows a downward trend.

Africa remains consistently lower in access to clean fuel and technology for cooking. India and China show an increasing trend in access to clean fuel and technology with a decreasing trend in poverty. As countries become more developed with time, they rely less on primitive technology because of the increased convenience and efficiency of modern technology leading to the evident increase in access to clean fuel.

It’s worth noticing that many countries such as India, Pakistan, Indonesia are now around the 90th percentile, indicating that, although they have access to clean fuel, some would prefer to cook in a more traditional way. Culture plays a vital part in cooking and is a big determinant in using clean fuel and technology for cooking. Therefore, there will always be a potential gap from reaching 100% access to clean fuel in some nations as they intend to preserve their cultures and traditional ways of cooking.

plot1 <- plot_ly(
    data = sdg_continent,
    type = 'scatter',
    x = ~sdg13_co2pc,
    y = ~sdg1_320pov,
    size = ~Population,
    color = ~continent,
    text = ~Country,
    frame = ~Year,
    mode = "markers",
    sizes = c(10, 1000),
    marker = list(opacity = 0.5),
    hoverinfo = "text") %>%
    layout(title = "Poverty vs Energy-related CO₂ emissions over time  ",
           fill = "Continent", subtitle = "Subtitle",
           xaxis = list(type = "log",title="Energy-related CO₂ emissions (tCO₂/capita)"),
           yaxis = list(title="Population in Poverty with $3.20/day (%)"))
plot1  

Now that we have looked at the relation between poverty rate and access to clean fuels, we will examine the relationship between poverty rate and energy related carbon emissions. A similar approach was taken as the above chart to showcase the relationship.

A negative correlation of -0.526 was found between Energy-related CO2 emissions and Poverty and as witnessed from the chart, with the decrease in percentage of population in poverty, the CO2 emissions tend to increase. It’s also evident from the chart that in many countries, as significant economic growth is experienced over time, their CO2 emissions do not appear to change by a significant amount. One of the reasons could be because the electricity sources remain the same. Instead of moving towards renewable sources for electricity production, many developed countries are still relying on natural gas, coal, oil etc for power generation although further research is required to make any conclusion.

A decreasing trend in poverty is observed over time in many developing countries. Let’s take China, the fastest growing economy, into consideration. The decrease in the percentage of the population in poverty is approximately over 20% over a period of 7 years with a slight increase in CO2 emissions indicating that China is still highly reliant on traditional ways of electricity generation.This indicates there’s no substantial step being taken to address climate change even in countries with phenomenal economic success.

Similarly, the United States appears to have the highest CO2 emissions per capita, higher than the European countries such as Norway and the United Kingdom. Although extensive research is needed to understand the core reasons, one of the reasons could be how climate change issues are perceived among the public and policy makers leading to carbon emission not taking precedence over issues. Policies surrounding subsidising electric vehicles and limiting congestion such as “Norwegian EV policy” and “London Congestion charge” were proven to have worked in the reduction of carbon emission in Norway and London. A similar system could be implemented in the US. However, systemic issues and issues surrounding public perception of climate change still exist and can not be rooted off. Therefore, our team believes developed countries such as, United States should invest in solving the fundamental problem rather than temporarily alleviating the symptoms of carbon emissions.

Appendix

Data dictionary

sdg_data
Variable Class Description
Country character country
id character country id/abbreviation
Population double country population
sdg1_wpc double extreme poverty headcount ratio (% of population at $1.90/day)
sdg1_320pov double poverty headcount ratio (% of population at $3.20/day)
sdg7_cleanfuel double population with access to clean fuels and technology for cooking (%)
gapminder
Variable Class Description
continent character continent
country character country
year integer year
lifeExp double life expectancy (years)
pop integer population
gdpPercap double gdp per capita (international dollars per person)
# install.packages("magick")
# install.packages("ggthemes")
library(tidyverse)
library(here)
library(readxl) 
library(cowplot) 
library(janitor) 
library(scales)
library(ggrepel)
library(gganimate)
library(magick)
library(hrbrthemes)
library(ggthemes)
library(rstatix)
library(maps)
library(sf)
library(rnaturalearth)
library(rnaturalearthdata)
library(rnaturalearthhires)
library(ggridges)
library(gapminder)
library(biscale)
library(viridis)
library(plotly)
library(htmlwidgets)
library(htmltools)
library(leaflet)
library(DT)
library(reactable)
library(reactablefmtr)
library(sparkline)

knitr::opts_chunk$set(
    warning = FALSE,
    message = FALSE,
    comment = "#>",
    fig.path = "figs/", # Folder where rendered plots are saved
     fig.width = 7.252, # Default plot width
    fig.height = 5, # Default plot height
    fig.retina = 3 # For better plot resolution
)

xlsxPath <- here('data', 'SDR2020Database.xlsx')
sdg_data <- read_excel(xlsxPath, sheet = 'Raw Trend Data')

theme_set(theme_bw(base_size = 20))

world <- ne_countries(scale="medium",returnclass ="sf") %>%
  filter(continent != "Antarctica")

bivariate <- sdg_data %>%
  filter(! is.na(sdg1_320pov)) %>%
  filter(! is.na(sdg13_co2pc)) %>%
  filter(Year == 2014) %>%
  select(Country, id,Year,sdg1_320pov,sdg13_co2pc) 

world_bivariate <- world %>%
  full_join(bivariate, by = c("iso_a3" = "id"))

bivariateData <- bi_class(world_bivariate,x=sdg1_320pov,y=sdg13_co2pc, style = "quantile", dim = 3)


map <- ggplot() +
  geom_sf(data = bivariateData, mapping = aes(fill = bi_class), color = "grey20",size =0.1,show.legend = FALSE) +
  bi_scale_fill(pal = "GrPink", dim = 3) +
  theme_void() +
  labs(title = "Poverty Rate and Carbon Emissions", subtitle = "Poverty defined at $3.20/day")

legend <- bi_legend(pal = "GrPink", dim = 3, xlab = "Higher Poverty Rate", ylab = "Higher CO2 Emissions", size = 8)

finalPlot <- ggdraw() +
  draw_plot(map,0,0,1,1) +
  draw_plot(legend,0,0.1,0.3,0.3)

finalPlot

gapminder_temp <- gapminder %>%
  select(country, continent)

sdg_continent <- sdg_data %>%
    left_join(gapminder_temp, by = c("Country" = "country")) %>%
    filter(!is.na(continent)) 

sdg_continent_con <- sdg_continent %>%
    filter(!is.na(sdg7_cleanfuel),
           !is.na(continent),
           Year == 2016) %>%
    mutate(concolor = ifelse(continent == "Africa", 1, 0))

mean_cook <- mean(sdg_continent_con$sdg7_cleanfuel)

sdg_continent_con %>%
    ggplot() +
    geom_density_ridges(
        aes(x = sdg7_cleanfuel, y = continent, fill = concolor),
        scale = 1.5, alpha = 0.7) +
    scale_y_discrete(expand = c(0, 0)) +
    scale_x_continuous(expand = c(0, 0)) +
    coord_cartesian(clip = "off") +
      geom_vline(xintercept = mean_cook, col = 'darkgreen',
             linetype = 'dashed') +
      annotate('text', x = (mean_cook + 1), y = 7, hjust = 0,
           label = 'Global average access to clean ',
           color = 'darkgreen') +
      annotate('text', x = (mean_cook + 1), y = 6.7, hjust = 0,
           label = 'cooking fuels',
           color = 'darkgreen') +
    labs(x = 'Population with access to clean fuels and technology for cooking (%)',
         y = 'Continent',
         title = 'Population with access to clean cooking fuels\nacross countries in continents in 2016') +
  theme_classic() + theme(legend.position = "none")


plot2 <-  plot_ly(
        data = sdg_continent,
        type = 'scatter',
        x = ~sdg7_cleanfuel,
        y = ~sdg1_320pov,
        size = ~Population,
        color = ~continent,
        text = ~Country,
        frame = ~Year,
        mode = "markers",
        sizes = c(10, 1000),
        marker = list(opacity = 0.5),
        hoverinfo = "text")%>%
        layout(title = "Poverty vs Population with access to clean cooking fuels over time", 
               fill = "Continent", subtitle = "Subtitle",
               xaxis = list(type = "log",title="Population with access to clean fuels and technology for cooking (%)"),
               yaxis = list(title="Population in Poverty with $3.20/day (%)"))
   plot2 

plot1 <- plot_ly(
    data = sdg_continent,
    type = 'scatter',
    x = ~sdg13_co2pc,
    y = ~sdg1_320pov,
    size = ~Population,
    color = ~continent,
    text = ~Country,
    frame = ~Year,
    mode = "markers",
    sizes = c(10, 1000),
    marker = list(opacity = 0.5),
    hoverinfo = "text") %>%
    layout(title = "Poverty vs Energy-related CO₂ emissions over time  ",
           fill = "Continent", subtitle = "Subtitle",
           xaxis = list(type = "log",title="Energy-related CO₂ emissions (tCO₂/capita)"),
           yaxis = list(title="Population in Poverty with $3.20/day (%)"))
plot1