ContextBase Logo



Synopsis



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”.




Research question

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.




Data

This analysis was constructed with six different datasets - REPDATA, WDI, DPI, EU, TEC and GDP.




Variables

Dependent variable: Adopt

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.


Control variable: Income

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.


Explanatory variables: Exchange of information

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.


Explanatory variables: Conditionality

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.


Explanatory variable: Principled beliefs

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.


Explanatory variable: Policy expertise

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.




Final SpatioTemporal Autoregression REP Adoption Equation

\[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)




Explanation of the SpatioTemporal Autoregression Equation

Spatial Maximum Likelihood (S-ML) Regression Model Methodology

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).

  1. Above, \(yt−1\) signifies the temporally lagged dependent variable
    Applied to REPs, \(yt−1\) signifies the temporally lagged dependent variables, (PHASE).

  2. \(Xt\) pertains to the set of control variables and the constant, or (Income, Exchange of Information, Conditionality, PrincipledBeliefs, PolicyExpertise) and the constant.

  3. \(\epsilon\) the error term.

  4. \(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).



Therefore, the formulation of the methodology applied in this analysis implies:

\[ADOPT_t = \phi(PHASE) + (Income + ExchageOfInformation + Conditionality + PrincipledBeliefs + PolicyExpertise)\beta + (interdependence) (COUNTRY) PHASE + (error rate)\]



Working Directory and Required Packages



# 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)



Import Data



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")



Optimize Datasets



#################################
# 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,]



Format Dependent Variable



\(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



Format Control Variable



\(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



Format Explanatory Variables



\(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



Merge Phase Datasets



##     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>



SpatioTemporal Correlation



# 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)



Regression Table



Table 1. Regression models predicting REPs (1 - 5)
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
Table 3. Regression models predicting REPs (6 - 10)
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
Table 3. Regression models predicting REPs (11 - 15)
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



SpatioTemporal Graphs