--- title: "Dangerous Assumptions Revisited" author: "Jonathan Gilligan" date: '2018-02-13' keywords: - climate change - climate policy - global warming - RCPs - representative concentration pathways - CO2 emissions - decarbonization - Roger Pielke, Jr. - greenhouse gas emissions slug: dangerous-assumptions-revisited tags: - decarbonization - RCPs categories: - blog posts --- {r setup, include=FALSE, cache=FALSE, message=FALSE, warning=FALSE} knitr::opts_chunk$set(echo = FALSE, cache = FALSE, message=FALSE, warning=FALSE, error=FALSE) if (! require(pacman)) { stop("Before proceeding, you must install the pacman package.\n", "In R, run \"install.packages('pacman')\".") } p_load(tidyverse) p_load(magrittr) p_load(readxl) p_load(ggrepel) p_load(janitor) p_load(knitr) p_load_gh("gilligan-ees-3310/kayadata") message("Dep path = ", blogdown::dep_path()) message("fig.path = ", knitr::opts_chunk$get("fig.path"))  Comparisons of observed trends of energy and carbon intensity in the global economy to trends implied by emissions scenarios used in policy analysis suggested that those scenarios were severely over-optimistic about the rate at which the world would spontaneously decarbonize its economy. I update these analysis, using global emissions since 2005, and find that observed rates of decarbonization are not far behind those implied by the RCP 4.5 policy scenario. This suggests that the policy challenge may not be as difficult as previous work has reported. # Introduction ## Background and the Kaya Identity In 2000, the Intergovernmental Panel on Climate Change published a [Special Report on Emissions Scenarios](http://www.ipcc.ch/ipccreports/sres/emission/){target="_blank"}, in which it developed many possible scenarios for the paths that greenhouse gas emissions might follow during the 21st century under "Business as Usual" (BAU) conditions, meaning without any policy measures to reduce emissions. Different scenarios made different assumptions about population growth, economic development, and technological innovation and thus produced a diverse range of emissions pathways. The hope was that the actual emissions path that the world would follow in the 21st century would lie somewhere within this range. From a policy perspective, it is useful to analyze emissions in terms of the [Kaya Identity](https://en.wikipedia.org/wiki/Kaya_identity){target="_blank"}: $$\text{Emissions} = \text{Population} \times \frac{\text{GDP}}{\text{Population}} \times \frac{\text{Energy}}{\text{GDP}} \times \frac{\text{Emissions}}{\text{Energy}}.$$ There is nothing magic about this: If you cancel terms that appear on both the top and bottom of the fractions, it says nothing more than $\text{Emissions} = \text{Emissions}$. However, the identity is useful for thinking about policy because each of the terms multiplied together is something that has direct relevance, so let's assign each a symbol: \begin{aligned} g &= \frac{\text{GDP}}{\text{Population}} = \text{per-capita GDP}\\ e &= \frac{\text{Energy}}{\text{GDP}} = \text{energy intensity of the economy}\\ f &= \frac{\text{Emissions}}{\text{Energy}} = \text{carbon intensity of the energy supply}. \end{aligned} Now, we can write the identity as $$F = P \times g \times e \times f,$$ where $F$ stands for total emissions, $P$ stands for population, and $g$, $e$, and $f$ are defined by the equations above. Roger Pielke, Jr.'s book, [_The Climate Fix_](https://www.amazon.com/Climate-Fix-Scientists-Politicians-Warming/dp/0465025196/){target="_blank"} has a very clear explanation of this in Chapter 3. This way of looking at emissions is useful for policymakers because trying to directly control population is both morally questionable (I would go much farther and say that I would find attempts by governments or others to forcibly control population to be a horrifying violation of people's basic rights, and especially women's rights to autonomy over their bodies). It would also be politically unfeasible and morally questionable at best to try to reduce per-capita GDP, which essentially would mean making people poorer on average. From a policy perspective, it is not feasible nor desirable to try to reduce people's wealth or coerce their reproductive choices. Thus, climate policy must focus on the last two terms: Improving energy efficiency can reduce the energy intensity of the economy and switching from carbon-intensive energy sources, such as coal, to less carbon-intensive sources, such as nuclear or renewable energy, can reduce the carbon-intensity of the energy supply. Reducing $e$ (energy intensity) and $f$ (carbon intensity) can reduce emissions without reducing either population or per-capita GDP. Thus, feasible climate policy focuses on ways to reduce energy and carbon intensity. ## Comparing Observed and Implied Rates of Decarbonization In 2008, Roger Pielke, Jr., Tom Wigley, and Christopher Green ("[Dangerous Assumptions](https://pdfs.semanticscholar.org/afdc/e9bfa0fb51768394407d086cdeb5e9f77207.pdf){target="_blank"}," _Nature_ **452**, 531 (2008)) compared the observed rate of change of energy and carbon intensity in the years 2000--2005 to the rates of change implied by the SRES scenarios. They observed that most of the scenarios assumed that even without any specific climate policies, the world's economy would steadily become more energy efficient and less carbon-intensive. However, they pointed out, between 2000 and 2005 the opposite happened: the world's economy became both _more_ energy intensive and _more_ carbon intensive. ![Assumed versus observed decarbonization rates, from Pielke _et al._, "[Dangerous Assumptions](https://pdfs.semanticscholar.org/afdc/e9bfa0fb51768394407d086cdeb5e9f77207.pdf){target="_blank"}"](/img/post/gilligan-dangerous-assumptions/pielke_assumed_decarbonization.jpg) If there is a fairly rapid rate of "spontaneous decarbonization" in the absence of climate policy, then making climate policy is relatively easy, because it only has to make modest changes to something that's happening already: ![Under the IPCC's SRES scenarios, spontaneous decarbonization (blue bars) does most of the hard work and climate policy only needs to add a small amount of additional decarbonization (red bars). However, if spontaneous decarbonization falls short of the predicted blue bars, then the policy task is harder. From Pielke _et al._, "[Dangerous Assumptions](https://pdfs.semanticscholar.org/afdc/e9bfa0fb51768394407d086cdeb5e9f77207.pdf){target="_blank"}"](/img/post/gilligan-dangerous-assumptions/pielke_cumulative_emissions.jpg) However, Pielke, Wigley, and Green found that the spontaneous decarbonization rate was much smaller than the IPCC expected, and emphasized that this implied that the policy challenge was much more difficult than expected. More recently, Samantha Stevenson and Roger Pielke, Jr. ("[Assumptions of Spontaneous Decarbonization in the IPCC AR5 Baseline Scenarios](https://pdfs.semanticscholar.org/0aef/69f0117b6f4e1d2926e1acaa6db7af963924.pdf){target="_blank"}") conducted a similar analysis of the "[Representative Concentration Pathways](https://skepticalscience.com/rcp.php?t=1){target="_blank"}" (RCPs), which were published in 2011. Unlike the SRES scenarios, the RCPs are policy-active pathways in which government action, such as imposing a price on greenhouse gas emissions, is used to reduce emissions. In their analysis, Stevenson and Pielke compared the observed global emissions between 2000 and 2008 to the baseline pathways corresponding to the RCPs (the baseline pathways are the trajectories of greenhouse gas emissions the RCP authors assumed would occur if there were no climate policies in effect). Stevenson and Pielke found that, just as with the SRES scenarios, the baseline emissions trajectories assumed far greater spontaneous decarbonization than actually occurred. ## Problems with the Previous Analyses An important problem that the analyses by Pielke, Wigley, & Green and Stevenson & Pielke face is that they compared the scenarios to observed trends during the years 2000--2005 and 2000--2008, respectively. This may not have been the best choice. World energy and carbon intensity steadily declined from 1980--2000 and then suddenly jumped for several years starting around 2002, which corresponded to a period of tremendous economic growth in China. {r world-carbon-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of global carbon intensity, with 2000--2008 highlighted."} get_kaya_data("World") %>% filter(year >= 1980) %>% plot_kaya("f", y_lab = expression(paste(MMT * CO[2] / quad)), log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Carbon intensity of world energy supply") + scale_y_log10(breaks = seq(62, 78, 4)) + theme_bw(base_size = 15)  {r world-energy-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of global energy intensity, with 2000--2008 highlighted."} get_kaya_data("World") %>% filter(year >= 1980) %>% plot_kaya("e", y_lab = "quad / $trillion", log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Energy intensity of world economy") + scale_y_log10(breaks = seq(6, 11, 2)) + theme_bw(base_size = 15)  China's growth was fueled by a rapid expansion of energy consumption, and both factories and generating plants were very inefficient, and were largely fueled by coal. This drove both the energy intensity of China's economy and the carbon intensity of its energy supply through the roof, and this appears to have played a large role in reversing for several years the global trend of declining energy and carbon intensity. Around 2007 or so, China's energy and carbon intensity began to fall again and the world energy and carbon intensity fell along with it. {r china-carbon-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of China's carbon intensity, with 2000--2008 highlighted."} get_kaya_data("China") %>% filter(year >= 1980) %>% plot_kaya("f", y_lab = expression(paste(MMT * CO[2] / quad)), log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Carbon intensity of China's energy supply") + scale_y_log10(breaks = seq(75, 95, 5)) + theme_bw(base_size = 15)  Note the very rapid decline in carbon intensity beginning in 2010. {r china-energy-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of China's energy intensity, with 2000--2008 highlighted."} get_kaya_data("China") %>% filter(year >= 1980) %>% plot_kaya("e", y_lab = "quad /$ trillion", log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Energy intensity of China's economy") + scale_y_log10(breaks = seq(10, 60, 10)) + theme_bw(base_size = 15)  And here are the trends for the whole world _except_ China: {r not-china-carbon-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of carbon intensity for the world except China, with 2000--2008 highlighted."} china <- get_kaya_data("China") %>% select(year, G, E, F) world <- get_kaya_data("World") %>% select(year, G, E, F) mix <- world %>% full_join(china, by = "year", suffix = c(".world", ".china")) %>% mutate(G = G.world - G.china, E = E.world - E.china, F = F.world - F.china) %>% mutate(e = E / G, f = F / E) %>% select(year, e, f) %>% filter(year >= 1980) plot_kaya(mix, "f", y_lab = expression(paste(MMT * CO[2] / quad)), log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Carbon intensity of rest of world") + scale_y_log10(breaks = seq(50, 70, 5)) + theme_bw(base_size = 15)  {r not-china-energy-plot, include = TRUE, fig.height=7, fig.width=7, fig.cap = "Trend of energy intensity for the world except China, with 2000--2008 highlighted."} plot_kaya(mix, "e", y_lab = "quad / $trillion", log_scale = TRUE, start_year = 2000, stop_year = 2008) + labs(title = "Energy intensity of rest of world") + scale_y_log10(breaks = seq(5, 10, 1)) + theme_bw(base_size = 15)  An alternative analysis of the RCP scenarios, which takes the observed trend from 2005--2016, seems more sensible, both because it better matches the period in which we are calculating the implied decarbonization trends (the first 15 years of the RCP scenarios, from 2005--2020), and also because it avoids the anomalous temporary reversal of the historical trend from approximately 2002--2005. # Methods To calculate carbon intensity and energy intensity, we need economic data for the scenarios, so to make things simple, we use the [GCAM simulations of the RCPs](http://www.globalchange.umd.edu/gcamrcp){target="_blank"}. These are not identical to the official RCP data, but present reasonable scenarios that produce emissions trajectories very close to the RCPs. The GCAM versions of the pathways are calculated within a consistent macroeconomic model of regional economies and energy use, and thus facilitate comparisons of energy and carbon intensities. {r read-gcam-data, include=TRUE} data_dir <- 'data' data_file <- file.path(data_dir, 'GCAMRCPData.xls') rcp_45 <- read_excel(data_file, 'RCP4.5') %>% clean_names() gcam_60 <- read_excel(data_file, 'GCAM6.0') %>% clean_names() gcam_85 <- read_excel(data_file, 'GCAM8.5') %>% clean_names() gcam_26 <- read_excel(data_file, 'GCAM2.6') %>% clean_names() gcam_ref <- read_excel(data_file, 'GCAMReference') %>% clean_names() gcam_by_sector <- read_excel(data_file, 'CO2EmissionsbySector') %>% clean_names() # # Clean up a list of variables by converting them into legal names # clean_vars <- function(vv) { new_vv <- vv %>% str_replace_all(c("['\"]" = "", "%" = "percent", "^[ ]+" = "_")) %>% make.names() %>% str_replace_all(c("[._]+" = "_", "_+$" = "")) %>% str_to_lower() } # # The excel sheet runs years in columns and variables in rows. # Flip this to put years in columns (and we need to fix "x2008" type col names # and convert years to integers), and clean up variable names to make them # legal column names. # process_scenario <- function(df) { df %>% gather(key = "year", value = "value", -model, -scenario, -region, -variable, -unit) %>% mutate(year = str_replace_all(year, "^[^0-9]+", "") %>% as.integer()) %>% mutate(variable = clean_vars(variable)) } for(s in c('gcam_26', 'rcp_45', 'gcam_60', 'gcam_85', 'gcam_ref', 'gcam_by_sector')) { get(s) %>% process_scenario() %>% assign(x = s, value = ., pos = globalenv()) } all_scenarios <- rbind(gcam_26, rcp_45, gcam_60, gcam_85, gcam_ref) # # There are lots of variables. We're interested in the Kaya ones, so filter # those out, and change the names to the ones we want. # Change scenario names to what we want. # Then add up values for each region to get whole world numbers. # gcam_scenarios <- all_scenarios %>% filter(variable %in% c("population_total", "gdp_total_mer", "primary_energy_total", "emissions_co2_fossil_fuels_and_industry")) %>% select(scenario, region, variable, year, value) %>% mutate(variable = str_replace_all(variable, c("_.*$" = "", "^population" = "P", "^gdp" = "G", "^primary" = "E", "^emissions" = "F")), scenario = str_replace_all(scenario, "(GCAM|RCP)([0-9]|Reference)", "\\1 \\2")) %>% group_by(scenario, variable, year) %>% summarize(value = sum(value)) %>% ungroup()  ## Observed Historical Data We get historical emissions data from the 2017 BP Statistical Review of World Energy and historical economic data from the World Bank. {r load-historical-data, include=TRUE} historical <- get_kaya_data("World")  ## Calculate Decarbonization Rates From the Kaya identity, the energy intensity of the economy is given by$e = E/G$, and the carbon intensity of the energy supply is given by$f = F/E$, where$E$is the total primary energy consumption,$F$is the total carbon dioxide emissions, and$Gis the gross world product. Fractional growth rates are given by \begin{aligned} r_e &= \frac{\text{d} \ln e}{\text{d}t} \\ r_f &= \frac{\text{d} \ln f}{\text{d}t} \end{aligned} We implied rates under RCP and GCAM scenarios from 2005--2020 and we calculate rates of observed (historical) change from 2005--2016. {r decarbonization-rates, include = TRUE} rates <- gcam_scenarios %>% spread(key = variable, value = value) %>% mutate(e = E / G, f = F / E) %>% select(year, scenario, e, f) %>% filter(year >= 2005, year <= 2020) %>% gather(key = variable, value = value, e, f) %>% nest(-scenario, -variable) %>% group_by(scenario, variable) %>% mutate(fit = map(data, ~lm(log(value) ~ year, data = .x))) %>% mutate(coefs = map(fit, coef)) %>% mutate(rate = map_dbl(coefs, 2)) %>% ungroup() %>% select(scenario, variable, rate) %>% mutate(variable = str_c("r.", variable)) %>% spread(key = variable, value = rate) hist_rates <- historical %>% select(year, e, f) %>% filter(year >= 2005) %>% gather(key = variable, value = value, -year) %>% nest(-variable) %>% group_by(variable) %>% mutate(fit = map(data, ~lm(log(value) ~ year, data = .x))) %>% mutate(coefs = map(fit, coef)) %>% mutate(rate = map_dbl(coefs, 2)) %>% ungroup() %>% select(variable, rate) %>% mutate(variable = str_c("r.", variable)) %>% spread(key = variable, value = rate) %>% mutate(scenario = "Historical") rates <- rates %>% bind_rows(hist_rates)  # Analysis Now we have the data, so we plot the implied rates of decarbonization in the RCP and GCAM scenarios and compare them to the observed historical rates over the same time frame. {r plot-data, include=TRUE, fig.height=7, fig.width=7, fig.cap="Observed vs. implied rates of decarbonization. RCP and GCAM rates are for 2005--2020 and Historical rate is for 2005--2016."} rcp_scales <- tribble( ~scenario, ~order, ~break_order, ~shape, ~size, ~nx, ~ny, "Historical", 3, 1, 18, 5, 0, 0.05, "GCAM Reference", 1, 2, 16, 3, 0, 0.05, "GCAM 8.5", 2, 3, 16, 3, 0, 0.05, "GCAM 6.0", 4, 4, 16, 3, -0.02, 0.02, "RCP 4.5", 5, 5, 16, 3, 0, 0.05, "GCAM 2.6", 6, 6, 16, 3, 0, 0.05 ) %>% arrange(order) %>% mutate(scenario = ordered(scenario, levels = scenario)) rcp_levels <- levels(rcp_scalesscenario) rcp_breaks <- rcp_scales %>% arrange(break_order) %>% select(scenario) %>% simplify() %>% unname() rcp_shapes <- rcp_scales %>% arrange(order) %>% select(scenario, shape) %>% spread(key = scenario, value = shape) %>% simplify() rcp_sizes <- rcp_scales %>% arrange(order) %>% select(scenario, size) %>% spread(key = scenario, value = size) %>% simplify() r <- rates %>% mutate(scenario = ordered(scenario, levels = rcp_levels)) %>% left_join(rcp_scales %>% select(scenario, nx, ny), by = "scenario") rate_plot <- ggplot(r, aes(x = 100 * r.f, y = 100 * r.e, color = scenario, shape = scenario, size = scenario)) + geom_hline(size = 1, color = "gray70", yintercept = 0.0) + geom_vline(size = 1, color = "gray70", xintercept = 0.0) + geom_point() + geom_abline(aes(slope = -1, intercept = 100 * (r.e + r.f), color = scenario), data = filter(r, scenario == "Historical"), size = 1) + geom_text_repel(aes(label = scenario, nudge_x = nx, nudge_y = ny), color = "black", size = 4, box.padding = 0.4) + labs(y = expression(paste(Delta, " Energy Intensity of GDP (%/year)")), x = expression(paste(Delta, "Carbon Intensity of Energy (%/year)"))) + scale_x_continuous(expand = c(0, 0.125)) + scale_color_brewer(palette = "Dark2", breaks = rcp_breaks, direction = -1, name = "Scenario", guide = "none") + scale_shape_manual(values = rcp_shapes, breaks = rcp_breaks, name = "Scenario", guide = "none") + scale_size_manual(values = rcp_sizes, breaks = rcp_breaks, name = "Scenario", guide = "none") + coord_fixed(ratio = 1) + theme_bw(base_size = 15) rate_plot  {r rate-table} rates %>% mutate(scenario = ordered(scenario, levels = rcp_breaks), r.ef = r.e + r.f) %>% arrange(scenario) %>% select(scenario, r.ef) %>% mutate(Decarbonization rate=sprintf("%.1f%%", 100 * r.ef)) %>% select(Scenario = scenario, Decarbonization rate) %>% kable(align = 'cc', caption = "Observed and implied total global decarbonization rates")  # Conclusions In contrast to the previous work, using the last 8 years of observed data on energy and carbon intensity, the world appears to currently be headed along a trajectory is decarbonizing slightly faster than both the RCP 4.5 reference scenario and the RCP 6.0 policy scenario, and which not too far behind the early years of RCP 4.5 policy scenario (see Table \@ref(tab:rate-table)). Thus, the challenge of getting from the current trajectory to the RCP 4.5 policy trajectory seems actually to be a bit smaller than anticipated. This is very different from the conclusions of Pielke, Wigley, & Green and Stevenson & Pielke, and presents a much more optimistic picture than those analyses do. Of course, the big cuts in the RCP 4.5 pathway occur in the future, so we should not take this as license for complacency. Much of the acceleration of decarbonization has been driven by the unexpected fracking revolution, which dramatically reduced the price of natural gas and thus stimulated a massive shift from coal to gas in electrical generation. Sustaining a long-term decarbonization trend will require a similar revolution in clean energy sources (nuclear and renewables) to replace gas. Moreover, the anomalous reversal of spontaneous global decarbonization in the early 2000s may be repeated if other developing countries experience rapid industrialization and economic growth. This could happen in India and among African nations. Nonetheless, if we consider that this analysis compares the observed _spontaneous_ decarbonization rate (with no major climate policies) over the last eleven years to the decarbonization rates implied by the policy-regimes of the different RCP policy regimes, and if we also recognize that RCP 4.5 gives [roughly 80% probability of keeping warming below 3.0°C](http://www.nature.com/articles/nclimate1385){target="_blank"}, then this makes it much more plausible that we have time to avoid catastrophic damage. This analysis also highlights challenges with respect to energy efficiency: the carbon intensity of the world's energy supply has dropped much faster than either the baseline or any of the policy scenarios except GCAM 2.6. However, the energy intensity of the world's economy has lagged far behind the reference scenario and all of the serious policy scenarios (the exception, GCAM 8.5 may be seen as reflecting perverse policies that encourage energy consumption and the use of coal). This is true at the global scale and also apparent for China, as shown in figures \@ref(fig:china-carbon-plot) and \@ref(fig:china-energy-plot). This is consistent with many experts' views that policy measures will be more effective at reducing carbon intensity by promoting inexpensive clean energy sources than at slowing or reversing the growth of energy demand. However, one could also interpret this as a failure by both governments and markets to provide [behaviorally effective incentives](/files/pubs/pdfs/stern_2010_design_principles.pdf){target="_blank"} and opportunities for businesses and households to implement available energy-efficiency measures. Michael Vandenbergh and I argue for the latter interpretation in our recent book, [_Beyond Politics_](https://beyondpoliticsbook.com){target="_blank"}, where we present evidence that there is a large efficiency gap both in households and in businesses, and that there are significant opportunities to reduce emissions while saving money by systematically pursuing inefficiencies. # Code The R code for the analysis in this post is available at and an alternate version is available at