This analysis builds 15 spatial temporal autoregressive models (i.e., Model 1 - Model 15). 5 models are built per each phase (phase_2, phase_3 and phase_4 within the REPDATA excel document). “phase_T2” = 1990 to 1999, “phase_T3” = 2000 to 2009 and “phase_T4” = 2010 to 2019. The methodological approach applied is the Spatial Maximum Likelihood (S-ML).
I build fifteen models, including twelve parsimonious models and three full models. Each parsimonious model refers to one diffusion mechanism and include only the independent variable for the given mechanism and all control variables. The full models include all the independent variables and all control variables.
Three tables are formatted, (Table 1, Table 2 and Table 3). Figure 1 displays temporal patterns in the adoption of renewable energy policies. There is one line and color per policy. Figure 2 displays spatial patterns in the adoption of renewable energy policies. There is one color per policy and one color for “more than 1 policy”.
How, and to what extent, do diffusion processes affect states’ renewable energy policy adoption over time? The time periods involved include 1990 to 2019, “phase_T2” = 1990 to 1999, “phase_T3” = 2000 to 2009 and “phase_T4” = 2010 to 2019. The data includes samples of 192 countries, with country-year constituting the unit of analysis. 5’568 (29x192) observations.
This analysis was constructed with six different datasets - REPDATA, WDI, DPI, EU, TEC and GDP.
Indicator: States’ number of renewable energy policies.
Operationalization: Each instance on state renewable energy policy adoption was coded and summed over the different phases (i.e., phase_T2, phase_T3 and phase_T4). For example, in “phase_T2”, if country X did not adopt any renewable energy policies, the policy adoption variable was coded as zero for this period. Then in “phase_T3”, if country X adopted two renewable energy policies, the policy adoption variable was coded as two for this period, and the same process was repeated for the other periods as well. The maximum number of renewable energy policies that a country can adopt in a phase t is three (i.e., country X has adopted all three types of renewable energy policies of interest included in this study).
Data source: Data can be found in the REPDATA excel document.
Statistical method: S-LM in R studio.
Indicator: Comparable levels of GDP per capita (using information on GDP per capita current US$).
Hypothesis: “States are more likely to adopt renewable energy policies if other states with similar problem pressure (i.e., states with higher levels of income) have already adopted renewable energy policies.“
Operationalization: A dichotomous code was used to classify states according their level of income and thus to distinguish between richer and poorer states. The different groups of income follow the World Bank classification: high income are states with income correspondent to US$ 12,616 or >, middle income states those with US$ 1036 to 12,615, and low income states with income up to US$ 1035.
Data source: WDI. Data can be found in the income_new excel document.
Indicator: Captures the similarity of CO2 emissions per capita for each pair of two states.
Hypothesis: H1: “States are more likely to adopt renewable energy policies if other states with similar problem pressure (i.e., states with high level of per capita CO2 emissions) have already adopted renewable energy policies.“
Operationalization: To measure the similarity of CO2 emissions per capita, a connectivity matrix was built in which an element is coded as 1 if the level of CO2 emissions per capita is the same in both state i and j in a given year, and 0 otherwise. I use a dichotomous code in order to classify states according to their level of CO2 emissions per capita, I code states that are above the average (i.e., > 4.1 metric tons per capita) as states with a higher level of CO2 emissions per capita and states that are below the average as states with a lower level of CO2 emissions per capita.
Data source: World development indicators (WDI). Data can be found in the WDI_new excel document.
Indicator: Candidate status in the EU in one state, while the other state is a member state.
Hypothesis: H2: “States with a candidate status in the EU are more likely to adopt renewable energy policies in order to fulfill the conditions that EU requires for becoming an EU member.”
Operationalization: I build a connectivity matrix that based on information about the candidate status and member states of the EU. Each element of the matrix is coded as 1 if state i has candidate status (including potential candidate status) in the EU and state j is a member of the EU in a given year, and 0 for any other combinations. The matrix is derived from data based on own coding from internet research using information from the European Union (EU) website. I use a dichotomous code to classify states according to their status, I code states that are EU members as 0 and states that have a candidate status (including potential candidate status) in the EU as 1.
Data source: Data based on own coding from internet search. Data can be found in the EU_new excel document.
Indicator: Similarity of government ideology.
Hypothesis: H3: “States with a left-leaning party family in power are more likely to adopt renewable energy policies if other states with similar political ideology have already adopted renewable energy policies.”
Operationalization: I build a connectivity matrix in which each element is coded as 1 if the ideological orientation of the government of state i and state j overlap, and as 0 if the ideological orientation of state i and state j overlap differs in a given year. I use a dichotomous code that distinguishes between leftist governments on the one hand and rightist government on the other hand. I code states that have a rightist governing party family with 1 and states that have a leftist governing party family with 0. NA = 9999.
Data source: The variable “EXECRLC” is used from the DPI2020 Database of Political Institutions (DPI). Data can be found the DPI excel document.
Indicator: Number of joint memberships in epistemic communities.
Hypothesis: H4: “States are more likely to adopt renewable energy policies if other states with similar memberships in TECs (i.e., membership in IEA, in REN21 or in both) have already adopted renewable energy policies.”
Operationalization: I built a connectivity matrix that shows for each state dyad the number of TECs state i and state j are both subjected to in a given year. Each element is coded as 1 if both states were members in one or two TECs, and as 0 if both states were members in any TECs in a given year. I use a dichotomous code to distinguish states’ membership in TECs. I code states that are members in one of the two TECs or in the two TECs as 1, and states that are members of any TECs as 0.
Data source: Data based on own coding from internet search. Data can be found in the TEC_new excel document.
\[ADOPT_t = \phi(PHASE) + (Income +
ExchangeOfInformation + Conditionality + PrincipledBeliefs +
PolicyExpertise)\beta + \rho (COUNTRY) + \epsilon\] \(\tau\) = time
\(\phi\) = temporal lag
\(\beta\) = set of values
\(\rho\) = strength of
interdependence
\(\epsilon\) = error rate
\(PHASE\) = phase_T2 through phase_T4
in REPDATA
\(Income\) = GDP (income time series
per country)
\(ExchangeOfInformation\) = WDI (CO2
emissions time series per country)
\(Conditionality\) =
EU$candidate_status_year_not_EU_member
\(PrincipledBeliefs\) =
DPI$execrlc
\(PolicyExpertise\) = TEC (0 = not TEC
member, 1 = 1 TEC membership, 2 = 2 TEC memberships)
\(COUNTRY\) = selected_countries (192
countries)
Given our theoretical argument for regression of Renewable Energy Policy Adoption, and the distribution of the dependent variable (ADOPT), spatial temporal autoregressive (“spatial lag”) models seem appropriate. When including a temporal next to the spatial lag, these models are defined as:
\[y_t = \phi y_{t-1} + X_t\beta + \rho
Wy_{t-1} + \epsilon\] 1. In the above formula, \(yt\) is the dependent variable.
When applied to REP adoption, \(yt\) is
the dependent variable, (ADOPT).
Above, \(yt−1\) signifies the
temporally lagged dependent variable
Applied to REPs, \(yt−1\) signifies the
temporally lagged dependent variables, (PHASE).
\(Xt\) pertains to the set of control variables and the constant, or (Income, Exchange of Information, Conditionality, PrincipledBeliefs, PolicyExpertise) and the constant.
\(\epsilon\) the error term.
\(Wyt−1\) stands for the product of a row-standardized connectivity matrix \(W\) and the temporally lagged dependent variable \(yt−1\). Applied to REP adoption, \(W\) represents the combination of the REPDATA and TEC datasets and the temporally lagged dependent variable “PHASE”, i.e. \(Wyt−1\) is a spatial lag, (or “COUNTRY” for REP adoption).
5b. In terms of time-series cross-sectional data, the connectivity matrix \(W\) (Autocorrelation of TEC) is given by a NT × NT matrix (with T N ×N sub-matrices along the block diagonal), with an element \(wi\),\(j\) capturing the relative connectivity of unit (organization, or TEC membership, WDI, GDP, etc. for REP adoption) \(j\) to unit (country) \(i\).
5d. The spatial lag then represents a weighted average of all other observations (excluding a respective country under study), with each weight specified by \(wi\), \(j\).
5e. while the spatial coefficient \(\rho\) captures the strength of interdependence.
5f. In order to estimate the long-term impact of a spatial lag based on a row-standardized connectivity matrix, we incorporate the coefficient of the temporally lagged dependent variable by Plümper, Troeger and Manow (2005, 336).
\[ADOPT_t = \phi(PHASE) + (Income + ExchageOfInformation + Conditionality + PrincipledBeliefs + PolicyExpertise)\beta + (interdependence) (COUNTRY) PHASE + (error rate)\]
# Set working directory to the folder with the project files
setwd("C:/Users/...")
# Required R language packages
library(data.table)
library(readxl)
library(dplyr)
library(plyr)
library(tidyr)
library(tidyverse)
library(reshape2)
library(ltm)
library(ggplot2)
library(knitr)
DPI <- read.csv("DPI.csv")
EU <- read_xlsx("EU.xlsx")
GDP <- read_xlsx("Income_New.xlsx")
REPDATA <- read_xlsx("REPDATA.xlsx")
selected_countries <- read_xlsx("selected_countries.xlsx")
TEC <- read_xlsx("TEC.xlsx")
WDI <- read_xlsx("WDI_New.xlsx")
#################################
# Create i j dataframe of 192 selected
# countries (192^2 = 36864)
##################################
selected_countries <- data.frame(selected_countries)
i_j_list <- expand.grid(sender=selected_countries$country,
target=selected_countries$country)
i_j_summation_list <- data.frame(
country_i=as.character(i_j_list$target),
country_j=as.character(i_j_list$sender))
all_country_combinations <- i_j_summation_list
# Format EU column names
names(EU) <- c("country", "EU_adhesion_year", "candidate_status_year_not_EU_member", "potential_candidate_status_year_not_EU_member")
# Format GDP column names
names(GDP) <- c("Series_Name", "country", "country_code", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019")
# Format TEC column names
names(TEC) <- c("Countries", "REN21", "year_REN21", "IEA", "year_IEA", "Empty_column", "Coding_Scheme")
# Format WDI column names
names(WDI) <- c("CO2_emissions_kt", "country", "code", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019")
# Remove columns 1 and 3 from GDP
GDP <- GDP[,-c(1,3)]
# Remove columns 1 and 3 from WDI
WDI <- WDI[,-c(1,3)]
# Remove unneeded columns from REPDATA
REPDATA <- REPDATA[,-c(2,3,36:44)]
REPDATA <- REPDATA[,-c(8,10,12,14,16,18,20,22,24,26,28,30,32)]
# Remove unneeded columns for TEC
TEC <- TEC[-c(6:7)]
TEC <- TEC[-1,]
\(PHASE\) = phase_T2 through phase_T4 in REPDATA
## # A tibble: 5 × 6
## country phase_T1 phase_T2 phase_T3 phase_T4 phase_sum
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Afghanistan 0 0 0 0 0
## 2 Albania 0 0 0 1 1
## 3 Algeria 0 0 1 1 1
## 4 Andorra 0 0 0 0 0
## 5 Angola 0 0 0 0 0
## country_i country_j adopt
## 1 Belarus Afghanistan 0
## 2 Bolivia Afghanistan 0
## 3 Costa Rica Afghanistan 0
## 4 Denmark Afghanistan 0
## 5 El Salvador Afghanistan 0
## country_i country_j adopt
## 1992 Belarus Belarus 1
## 1993 Bolivia Belarus 1
## 1994 Costa Rica Belarus 1
## 1995 Denmark Belarus 1
## 1996 El Salvador Belarus 1
\(Income\) = GDP (income time series per country)
## country_i country_j income
## 1 Andorra Afghanistan 0
## 2 Australia Afghanistan 0
## 3 Austria Afghanistan 0
## 4 Belgium Afghanistan 0
## 5 Brunei Afghanistan 0
## country_i country_j income
## 4899 Andorra Andorra 1
## 4900 Australia Andorra 1
## 4901 Austria Andorra 1
## 4902 Belgium Andorra 1
## 4903 Brunei Andorra 1
\(ExchangeOfInformation\) = WDI (CO2
emissions time series per country)
\(Conditionality\) =
EU$candidate_status_year_not_EU_member
\(PrincipledBeliefs\) =
DPI$execrlc
\(PolicyExpertise\) = TEC (0 = not TEC
member, 1 = 1 TEC membership, 2 = 2 TEC memberships)
## country_i country_j exchange
## 1 Andorra Afghanistan 0
## 2 Australia Afghanistan 0
## 3 Austria Afghanistan 0
## 4 Azerbaijan Afghanistan 0
## 5 Bahamas Afghanistan 0
## country_i country_j exchange
## 8175 Andorra Andorra 1
## 8176 Australia Andorra 1
## 8177 Austria Andorra 1
## 8178 Azerbaijan Andorra 1
## 8179 Bahamas Andorra 1
## country_i country_j conditionality
## 1 Afghanistan Afghanistan 0
## 2 Afghanistan Albania 0
## 3 Afghanistan Algeria 0
## 4 Afghanistan Andorra 0
## 5 Afghanistan Angola 0
## country_i country_j conditionality
## 5962 Cape Verde Austria 1
## 5969 Cape Verde Belgium 1
## 5978 Cape Verde Bulgaria 1
## 5994 Cape Verde Croatia 1
## 5996 Cape Verde Cyprus 1
## country_i country_j belief
## 1 Albania Argentina 0
## 2 Angola Argentina 0
## 3 Australia Argentina 0
## 4 Austria Argentina 0
## 5 Barbados Argentina 0
## country_i country_j belief
## 2753 Albania Albania 1
## 2754 Angola Albania 1
## 2755 Australia Albania 1
## 2756 Austria Albania 1
## 2757 Barbados Albania 1
## country_i country_j REN21 year_REN21 IEA year_IEA TEC_dyad membershipTotal
## 117 Finland France no 9999 yes 1992 noyes 1
## 118 France Finland no 9999 yes 1992 noyes 1
## 119 Albania Algeria no 9999 no 9999 nono 0
## 120 Albania Andorra no 9999 no 9999 nono 0
## 121 Albania Angola no 9999 no 9999 nono 0
## overlap
## 117 1
## 118 1
## 119 0
## 120 0
## 121 0
## country_i country_j adopt income exchange conditionality belief overlap
## 1 Afghanistan Afghanistan 1 1 1 0 NA <NA>
## 2 Afghanistan Albania 1 1 1 0 NA <NA>
## 3 Afghanistan Algeria 1 1 1 0 NA <NA>
## 4 Afghanistan Andorra 1 NA NA 0 NA <NA>
## 5 Afghanistan Angola 1 1 1 0 NA <NA>
# All data parsimonious models 1 - 4
Model1 <- lm(adopt ~ exchange + income, data = final_T2)
Model1_summary <- summary(Model1)
Model2 <- lm(adopt ~ conditionality + income, data = final_T2)
Model2_summary <- summary(Model2)
Model3 <- lm(adopt ~ belief + income, data = final_T2)
Model3_summary <- summary(Model3)
Model4 <- lm(adopt ~ overlap + income, data = final_T2)
Model4_summary <- summary(Model4)
# All data Full Model
Model5 <- lm(adopt ~ exchange + conditionality +
belief + overlap + income, data = final_T2)
Model5_summary <- summary(Model5)
# All data parsimonious models 6 - 10
Model6 <- lm(adopt ~ exchange + income, data = final_T3)
Model6_summary <- summary(Model6)
Model7 <- lm(adopt ~ conditionality + income, data = final_T3)
Model7_summary <- summary(Model7)
Model8 <- lm(adopt ~ belief + income, data = final_T3)
Model8_summary <- summary(Model8)
# insufficient data for overlap
Model9 <- lm(adopt ~ income, data = final_T3)
Model9_summary <- summary(Model9)
# All data Full Model
# insufficient data for overlap
Model10 <- lm(adopt ~ exchange + conditionality +
belief + income, data = final_T3)
Model10_summary <- summary(Model10)
# All data parsimonious models 11 - 15
Model11 <- lm(adopt ~ exchange + income, data = final_T4)
Model11_summary <- summary(Model11)
Model12 <- lm(adopt ~ conditionality + income, data = final_T4)
Model12_summary <- summary(Model12)
Model13 <- lm(adopt ~ belief + income, data = final_T4)
Model13_summary <- summary(Model13)
# insufficient data for overlap
Model14 <- lm(adopt ~ income, data = final_T4)
Model14_summary <- summary(Model14)
# All data Full Model
# insufficient data for overlap
Model15 <- lm(adopt ~ exchange + conditionality +
belief + income, data = final_T4)
Model15_summary <- summary(Model15)
| Model 1 | Model 2 | Model 3 | Model 4 | Model 5 | |
|---|---|---|---|---|---|
| Exchange of Information | 9.185e-06 *** | - | - | - | -0.066 |
| Conditionality | - | 0.34159 *** | - | - | -0.042 |
| Principled Beliefs | - | - | 0.0022 *** | - | 20.629 |
| Policy Expertise | - | - | - | 0.7567 *** | -0.024 |
| R-squared | 0.0409 | 0.0326 | 0.0365 | 0.003 | 0.0188 |
| Prob > F | 3.50718832929363e-217 | 3.26376643339193e-209 | 1.03503815260195e-40 | 9.18317026031813e-14 | 4.65200255984239e-08 |
| Observations | 23866 | 28944 | 4954 | 20085 | 2102 |
| N countries | 154.49 | 170.13 | 70.38 | 141.72 | 45.85 |
| Model 6 | Model 7 | Model 8 | Model 9 | Model 10 | |
|---|---|---|---|---|---|
| Exchange of Information | 3.50263050463328e-75 *** | - | - | - | 0.178 |
| Conditionality | - | 1.7420169474947e-42 *** | - | - | -0.024 |
| Principled Beliefs | - | - | 0.3794 *** | - | -1.077 |
| Policy Expertise | - | - | - | 1.7420169474947e-42 *** | 0.029 |
| R-squared | 0.0291 | 0.0087 | 0.0258 | 0.0087 | 0.048 |
| Prob > F | 1.43160727578798e-118 | 1.74201694767722e-42 | 1.21340755014954e-13 | 1.74201694767722e-42 | 5.12781513723827e-22 |
| Observations | 18403 | 21397 | 2273 | 21397 | 2077 |
| N countries | 135.66 | 146.28 | 47.68 | 146.28 | 45.57 |
| Model 11 | Model 12 | Model 13 | Model 14 | Model 15 | |
|---|---|---|---|---|---|
| Exchange of Information | 5.70070216593276e-15 *** | - | - | - | -0.032 |
| Conditionality | - | 0.2222 *** | - | - | 0.1 |
| Principled Beliefs | - | - | 0.0042 *** | - | 2.635 |
| Policy Expertise | - | - | - | 1.34322787960636e-13 *** | 0.051 |
| R-squared | 0.0086 | 0.0035 | 0.021 | 0.0034 | 0.0209 |
| Prob > F | 2.55069768546064e-28 | 6.02539629783162e-13 | 8.02027061933282e-05 | 1.34322787960857e-13 | 0.000485308449866859 |
| Observations | 14683 | 16212 | 887 | 16213 | 842 |
| N countries | 121.17 | 127.33 | 29.78 | 127.33 | 29.02 |