Final draft_ Linyi Zheng

Introduction

At the current juncture, China’s economic growth paradigm has shifted from one characterized by rapid expansion to a model prioritizing high-quality, environmentally sustainable development. This transition has brought the issue of significant carbon emissions, a byproduct of previous unrefined growth strategies, into sharp focus. Data published by the International Energy Agency (IEA) indicates that in 2021, China’s carbon dioxide emissions amounted to 10.523 billion tons, constituting 33% of global emissions and marking the highest emission intensity among leading global economies. In response to these critical levels of emissions, China introduced a “dual carbon” goal in 2020, advocating for a consensus on low-carbon transformation and development. Nevertheless, this shift towards a low-carbon real economy necessitates substantial investment. Thus, the deployment of “green public investment” as an economic instrument to mitigate environmental pollution assumes critical importance for sustainable development. This approach facilitates governmental intervention through the strategic allocation of funds to projects that not only preserve the environment but also promote economic stability and growth.

Methodology

I utilized data extracted from the EPS database concerning green public investment in China over the past twenty years in different provinces, specifically examining the proportion of pollution control expenditures relative to total fiscal expenditures. The Green Development Index, which forms the basis of this study, comprises two distinct segments: one focuses on the variations in energy production and consumption patterns, while the other evaluates the performance of six major polluting industries alongside the effectiveness of investments in technology and innovation. This approach allows for a thorough evaluation of China’s environmental and economic policies in terms of their sustainability. By examining changes in energy dynamics, the analysis provides insights into the shift towards renewable energy sources and improvements in traditional energy usage. At the same time, the examination of the six major polluting industries offers a window into the industrial responses to environmental policies and regulations. The Green Development Index emphasizes the crucial role of technological advancements and innovative practices in driving China’s green transformation. This dual analysis not only highlights areas of progress but also identifies challenges, providing a nuanced view of China’s sustainable development initiatives.

The Green Public Investment and Industrial Profitability

library (here)
here() starts at /Users/zhenglinyi/Desktop/24 spring/sustainable finance/final paper
library(readxl)
library(ggplot2)
library(readr)
library(countrycode)
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ stringr   1.5.1
✔ forcats   1.0.0     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(sf)
Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
china_map <- st_read("/Users/zhenglinyi/Desktop/24 spring/sustainable finance/final paper/china-adminsitrative-regions_1174.geojson")
Reading layer `china-adminsitrative-regions_1174' from data source 
  `/Users/zhenglinyi/Desktop/24 spring/sustainable finance/final paper/china-adminsitrative-regions_1174.geojson' 
  using driver `GeoJSON'
Simple feature collection with 31 features and 10 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 73.65154 ymin: 18.29375 xmax: 134.7716 ymax: 53.56086
Geodetic CRS:  WGS 84
names(china_map)
 [1] "GID_0"     "NAME_0"    "GID_1"     "NAME_1"    "VARNAME_1" "NL_NAME_1"
 [7] "TYPE_1"    "ENGTYPE_1" "CC_1"      "HASC_1"    "geometry" 
regional_economy <- here("03_data_processed", "gf_province.csv") |> 
  read_csv()
Rows: 32 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): gf_name, indicator
dbl (2): year, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
china_economy_map <-  merge(china_map, regional_economy, by.x = "NAME_1" , by.y = "indicator")
china_economy_map$value <- as.numeric(china_economy_map$value) 
range(china_economy_map$value, na.rm = TRUE)
[1] 4.418101e-05 3.562020e-03
ggplot(data = china_economy_map) +
    geom_sf(aes(fill = value), color = "white") +
    scale_fill_gradient(low = "#abd9e9", high = "#2c7bb6", na.value = "transparent",
                        limits = c(0, max(china_economy_map$value, na.rm = TRUE))) +
    labs(title = "Green Public Investment Performance across Provinces",
         caption = "resources: EPS database") +
    theme_minimal() +
    theme(legend.position = "bottom",
          plot.caption = element_text(hjust = 0, color = "grey50"),
          text = element_text(family = "serif", size = 12))

regional_profits <- here("03_data_processed", "China_pfmc_province.csv") |> 
  read_csv()
Rows: 32 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): pfmc_name, indicator
dbl (2): year, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
china_profits_map <-  merge(china_map, regional_profits, by.x = "NAME_1" , by.y = "indicator")

library(viridis)
Loading required package: viridisLite
# Use the 'viridis' color scale
ggplot(data = china_profits_map) +
    geom_sf(aes(fill = value), color = "white") +
    scale_fill_viridis(option = "C", na.value = "transparent", 
                       limits = c(0, max(china_profits_map$value, na.rm = TRUE))) +
    labs(title = "Total Profits (100 million yuan) across Provinces",
         caption = "resources: EPS database") +
    theme_minimal() +
    theme(legend.position = "bottom",
          plot.caption = element_text(hjust = 0, color = "grey50"),
          text = element_text(family = "serif", size = 12))

I will put my analysis of scenarios in different provinces here.

The Green Development over Years

energy_data <- here("03_data_processed", "China_energy.csv") |> 
  read_csv()
Rows: 200 Columns: 3
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): indicator
dbl (2): year, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
environment_data <-  here("03_data_processed", "China_environment.csv") |> 
  read_csv()
Rows: 80 Columns: 3
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): indicator
dbl (2): year, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
performance_data <- here("03_data_processed", "China_performance.csv") |> 
  read_csv()
Rows: 672 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): pfmc_name, indicator
dbl (2): year, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
non_percent_indicators <- energy_data %>%
  filter(!grepl("Rate|%", indicator)& indicator != "Total Energy Consumption (tce/10,000 yuan)")

fancy_non_percent_plot <- ggplot(non_percent_indicators, aes(x = year, y = value, group = indicator, color=indicator)) +
  geom_line(size = 1) +  
  scale_color_brewer(palette = "Set1") +
  labs(
    title = "Trends in Energy",
    subtitle = "Energy Consumption and Production per Capita",
    x = "Year",
    y = "Amount",
    caption = "Source: EPS Energy Database"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5),
    plot.caption = element_text(size = 8),
    legend.position = "bottom",
    legend.title = element_blank(),
    axis.text = element_text(size = 8),
    axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1),
    axis.title = element_text(size = 10),
    panel.grid.major = element_line(color = "#e5e5e5"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "#f7f7f7") )
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
print(fancy_non_percent_plot)

percent_indicators <- grepl("Rate|%|Efficiency", energy_data$indicator)

percent_data <- energy_data[percent_indicators, ]

fancy_percent_plot <- ggplot(percent_data, aes(x = year, y = value, color = indicator, group = indicator)) +
  geom_line(size = 1) +  
  scale_color_brewer(palette = "Set1") +
  scale_y_continuous(
    breaks = seq(0, 100, by = 10), 
    expand = expansion(mult = c(0.05, 0.1)) 
  ) +
  labs(
    title = "Trends in Energy",
    subtitle = "The Growth Rate over years",
    x = "Year",
    y = "Growth Rate (%)",
    caption = "Source: EPS Energy Database"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5),
    plot.caption = element_text(size = 8),
    legend.position = "bottom",
    legend.title = element_blank(),
    axis.text = element_text(size = 8),
    axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1),
    axis.title = element_text(size = 10),
    panel.grid.major = element_line(color = "#e5e5e5"),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "#f7f7f7") +
  scale_x_continuous(breaks = seq(min(percent_data$year), max(percent_data$year), by = 10)))

print(fancy_percent_plot)

Despite the annual increase in both the consumption and production of energy, there is a noticeable deceleration in the growth rate, particularly around the year 2016—a period marking a significant transitional phase for China. Concurrently, there is a gradual increase in energy utilization efficiency. This trend reflects a strategic shift towards more sustainable energy practices, as China seeks to balance its economic growth with environmental sustainability. The slowdown in the growth rate of energy consumption can be attributed to various factors including enhanced energy efficiency policies, the adoption of cleaner and renewable energy sources, and broader economic transformations that prioritize less energy-intensive industries. This subtle improvement in energy utilization underscores the effectiveness of a more sustainable energy landscape.

The Green Public Investment and Most Polluting Industries Performance

library(tidyverse)

environment_data_imputed <- environment_data %>%
  group_by(indicator) %>%
  mutate(value = ifelse(is.na(value), median(value, na.rm = TRUE), value))

environment_selected <- environment_data_imputed %>%
  filter(indicator == "Investment in Pollution Control as Percentage of Total GDP (%)")



environment_selected %>%
  ggplot(aes(x = year, y = value)) +
  geom_line(color = "darkred", size = 1) + 
  theme_minimal() +
  labs(
    title = "National Investment in Pollution Control as Percentage of Total GDP (%)",
    x = "Year",
    y = "Investment ratio (%)",
    caption = "Source: EPS Energy Database"
  )

performance_selected <- performance_data %>%
  filter(pfmc_name %in% c("Return on Capital (%)", 
                           "Growth of Total Assets (%)", 
                           "Technological Investment Ratio (%)"))

library(tidyverse)
library(RColorBrewer) 

ggplot(performance_selected, aes(x = year, y = value, group = pfmc_name, color = pfmc_name)) +
  geom_line() +
  facet_wrap(~indicator, scales = 'free_y') + 
  theme_minimal(base_size = 14) +  # Increase base text size
  scale_color_brewer(palette = "Set2") +
  labs(
    title = "Profitability Across Polluting Industries",
    x = "Year",
    y = "Profitability Ratio (%)",
    color = "indicator"
  ) +
  theme(
    legend.position = "bottom",
    legend.title.align = 0.5,
    strip.text.x = element_text(size = 12),  # Increase facet label size
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10),  # Adjust x-axis text size and angle
    axis.text.y = element_text(size = 10),  # Adjust y-axis text size
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),  # Bold and center title
    legend.text = element_text(size = 10)  # Adjust legend text size
  ) +
  guides(color = guide_legend(title.position = "top", title.hjust = 0.5)) 
Warning: The `legend.title.align` argument of `theme()` is deprecated as of ggplot2
3.5.0.
ℹ Please use theme(legend.title = element_text(hjust)) instead.

By directing public investment towards green initiatives, governments can stimulate market innovation in clean technologies, enhance the resilience of infrastructure against environmental risks, and foster a more sustainable economic model. Such investments also catalyze private sector involvement by lowering the risk profile of pioneering green technologies and business practices. This synergy between public investment and private enterprise accelerates the transition towards a low-carbon economy, serving as a foundational component in the broader strategy to achieve environmental sustainability and economic prosperity concurrently.