library(tidyverse)
library(plm)Channels of Democracy
Potential Channels mentioned and their respective variables:
- Log Investment =
loginvpc - Log TFP =
ltfp - Index Economic Reforms:
marketref - Trade Share =
ltrade - Government Expenditure =
lgov - Primary Enrollment =
lprienr - Secondary enrollement =
lsecenr - Child Mortality =
lmort - Dummy Unrest =
unrestn
Formula
\[ var_{ct} = \beta D_{ct} + \sum_{j=1}^4 \gamma_j y_{ct-j}+ \sum_{j=1}^4 \delta_j var_{ct-j} +\alpha_c + \theta_t + \epsilon_{ct} \] p = 4 lags = preferred specification
Explanation:
- \(var_{ct}\) = explaining variable
- \(y_ct\) = log GDP per capita in country c at time t
- \(D_{ct}\) = Dichotomous measure of democracy
- 4 lags of log GDP for control
- 4 lags of the explaining variable for control
- \(\alpha\) = country fixed effects
- \(\theta\) = time fixed effects
- \(e\) = error
Imports
DDCGdata <- haven::read_dta("data/DDCGdata.dta")
pdf <- pdata.frame(DDCGdata, index=c("country_name", "year"))
rm(DDCGdata)
head(pdf)Models
TFP
model2 <- plm(
ltfp ~ dem + plm::lag(y,1:4)+ plm::lag(ltfp, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Reforms
model3 <- plm(
marketref ~ dem + plm::lag(y,1:4)+ plm::lag(marketref, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Trade
model4 <- plm(
ltrade2 ~ dem + plm::lag(y,1:4)+ plm::lag(ltrade2, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Government Expenditure
model5 <- plm(
lgov ~ dem + plm::lag(y,1:4)+ plm::lag(lgov, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Primary Enrollment
model6 <- plm(
lprienr ~ dem + plm::lag(y,1:4)+ plm::lag(lprienr, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Secondary Enrollment
model7 <- plm(
lsecenr ~ dem + plm::lag(y,1:4)+ plm::lag(lsecenr, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Child Mortality
model8 <- plm(
lmort ~ dem + plm::lag(y,1:4)+ plm::lag(lmort, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Unrest
model9 <- plm(
unrestn ~ dem + plm::lag(y,1:4)+ plm::lag(unrestn, 1:4), #the equation with country fixed effects
model="within", #The fixed effects within estimator
data = pdf,
effect = "twoways"
)Additional Infos about the Models
models <- list(model1, model2, model3, model4, model5, model6, model7, model8, model9)Long Run
Calculate the long run effects for the different models with this Formula:
\[ \frac{ \hat\beta }{1- \sum_{j=1}^p \hat\gamma_j} \]
lre <- list()
for (i in 1:9) {
beta_hat <- coef(models[[i]])["dem"]
gamma_hat <- coef(models[[i]])[6:9]
lre[[i]] <- beta_hat / (1 - sum(gamma_hat))
}
lre <- unlist(lre)
lre <- round(lre, 2)Persistence
Calculate the persistence for the different models with this Formula:
\[ D_{pers} = \sum_{j=1}^p \hat\gamma_j \]
persistence <- list()
for (i in 1:9) {
gamma_hat <- coef(models[[i]])[6:9]
persistence[[i]] <- sum(gamma_hat)
}
pers <- unlist(persistence)
pers <- round(pers, 2)Creating the Table
models <- list(model1, model2, model3, model4, model5, model6, model7, model8, model9)
stargazer::stargazer(
models,
type = "html",
covariate.labels = c("Democracy"),
title = "Effects of Democracy on Potential Channels",
dep.var.labels = c(
"Log Investment", "Log TFP", "Index Economic Reforms",
"Log Trade Share", "Log of Gov. Exp.","Log Primary Enrollment",
"Log Secondary Enrollment", "Log Child Mortality", "Dummy Unrest"
),
omit.stat = c("f", "ser", "rsq", "adj.rsq"),
keep = "dem",
keep.stat = "N",
add.lines = list(
c("Long Run Effect", lre),
c("Persistence", pers)
)
)| Dependent variable: | |||||||||
| Log Investment | Log TFP | Index Economic Reforms | Log Trade Share | Log of Gov. Exp. | Log Primary Enrollment | Log Secondary Enrollment | Log Child Mortality | Dummy Unrest | |
| (1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | (9) | |
| Democracy | 2.391*** | -0.205 | 0.687** | 0.689 | 3.311*** | 1.042*** | 1.345*** | -0.253*** | -7.832*** |
| (0.928) | (0.255) | (0.282) | (0.503) | (1.078) | (0.230) | (0.393) | (0.051) | (1.764) | |
| Long Run Effect | 9.11 | -2.88 | 5.58 | 5.45 | 16.06 | 21.91 | 18.96 | -34.26 | -11.94 |
| Persistence | 0.74 | 0.93 | 0.88 | 0.87 | 0.79 | 0.95 | 0.93 | 0.99 | 0.34 |
| Observations | 5,665 | 3,879 | 4,692 | 5,738 | 4,511 | 3,714 | 2,883 | 6,084 | 5,646 |
| Note: | p<0.1; p<0.05; p<0.01 | ||||||||
Saving the Table as Tex
stargazer::stargazer(
models,
type = "latex",
out = "output/table_channels.tex",
covariate.labels = c("Democracy"),
column.sep.width = "0.01pt",
title = "Effects of Democracy on Potential Channels",
dep.var.labels = c(
"Log Investment", "Log TFP", "Index Economic Reforms",
"Log Trade Share", "Log of Gov. Exp.","Log Primary Enrollment",
"Log Secondary Enrollment", "Log Child Mortality", "Dummy Unrest"
),
omit.stat = c("f", "ser", "rsq", "adj.rsq"),
keep = "dem",
keep.stat = "N",
add.lines = list(
c("Long Run Effect", lre),
c("Persistence", pers)
)
)