November 19, 2021

Online appendix for “NGO Repression as a Predictor of Worsening Human Rights Abuses”

Suparna Chaudhry

Lewis & Clark College

Andrew Heiss

Georgia State University

Modeling approach

We use Stan (Stan Development Team, 2021) through R (R Core Team, 2021) and brms (Bürkner, 2017) to estimate our models. We generate 4 MCMC chains for each model with 2,000 iterations in each chain, 1,000 of which are used for warmup. All chains converge; we assess convergence with visual inspection.

To check for robustness, we also ran models using both country and regional random effects, but doing so made no noticeable difference in the results—for the sake of computational efficiency, we thus do not include regional effects.

Complete results from all the models, along with posterior predictive checks, goodness-of-fit measures, and prediction diagnostics are all available at a companion statistical analysis notebook at https://doi.org/10.17605/OSF.IO/MTR6X. Our general modeling approach can be summarized as follows:

PTS models

Equation

\[ \begin{aligned} & \textbf{Likelihood for ordinal outcome} \\ & \text{Political Terror Scores (PTS)} \\ y_{i, t+1} \sim&\ \operatorname{Categorical}(p_{i, t + 1}) \\ \ \\ & \textbf{Parameters} \\ \operatorname{logit}(p_i) =&\ \alpha_{j[i]} - \phi_{k, t + 1} \\ \phi_{k, t + 1} =&\ \beta_1 \text{PTS}_{i, t} + \beta_2 \text{PTS}_{i, t - 1} + \\ &\ \beta_3 \text{Outcome}_{i, t} + \beta_4 \text{Polyarchy}_{i, t} + \\ &\ \beta_5 \log (\text{GDP per capita}) + \\ &\ \beta_6 \text{Trade as } \% \text{ of GDP}_{i, t} + \\ &\ \beta_7 \text{Armed conflict}_{i, t} \\ \\ \alpha_j \sim&\ \mathcal{N} (\mu_{\alpha_j}, \sigma_{\alpha_j}), \text{ for country } j \text{ in } 1 .. J & \text{[country-specific intercepts]} \\ \\ \ \\ & \textbf{Priors} \\ \mu_{\alpha_j} \sim&\ \mathcal{N}(0, 3) & \text{[country-specific intercepts]} \\ \beta_{1-7} \sim&\ \mathcal{N}(0, 3) & \text{[population effects]} \\ \sigma_{\alpha_j} \sim&\ \operatorname{Cauchy}(0, 1) & \text{[sd for population \& country]} \end{aligned} \]

R code

The actual R code for this model is included in the replication code at https://doi.org/10.17605/OSF.IO/MTR6X. This is a simplified representation of the brms (Bürkner, 2017) model code.

# Ordinal logistic regression for political terror
# (replace `cs_repression` with different measures of de jure and 
# de facto civil society repression: barriers_total, advocacy, entry, 
# funding, and v2csreprss)
brm(
  bf(PTS_lead1 ~ cs_repression + cs_repression_lag1 +
       PTS + v2x_polyarchy + gdpcap_log +
       un_trade_pct_gdp + armed_conflict + (1 | gwcode)),
  family = cumulative(),
  prior = c(set_prior("normal(0, 3)", class = "Intercept"),
            set_prior("normal(0, 3)", class = "b"),
            set_prior("cauchy(0, 1)", class = "sd")),
  ...
)

Latent human rights models

Equation

\[ \begin{aligned} & \textbf{Likelihood for continuous outcome} \\ & \text{Latent human rights (LHR) values} \\ y_{i, t+1} \sim&\ \mathcal{N}(y^*_{i, t + 1}, \sigma_i) \\ \ \\ & \textbf{Parameters} \\ y^*_{i, t + 1} =&\ \alpha_{j[i]} + \beta_1 \text{LHR}_{i, t} + \beta_2 \text{LHR}_{i, t - 1}\\ &\ \beta_3 \text{Outcome}_{i, t} + \beta_4 \text{Polyarchy}_{i, t} + \\ &\ \beta_5 \log (\text{GDP per capita}) + \\ &\ \beta_6 \text{Trade as } \% \text{ of GDP}_{i, t} + \\ &\ \beta_7 \text{Armed conflict}_{i, t}\\ \\ \alpha_j \sim&\ \mathcal{N} (\mu_{\alpha_j}, \sigma_{\alpha_j}), \text{ for country } j \text{ in } 1 .. J & \text{[country-specific intercepts]} \\ \\ & \textbf{Priors} \\ \mu_{\alpha_j} \sim&\ \mathcal{N}(0, 10) & \text{[country-specific intercepts]} \\ \beta_{1-7} \sim&\ \mathcal{N}(0, 3) & \text{[population effects]} \\ \sigma_i, \sigma_{\alpha_j} \sim&\ \operatorname{Cauchy}(0, 1) & \text{[sd for population \& country]} \end{aligned} \]

R code

The actual R code for this model is included in the replication code at https://doi.org/10.17605/OSF.IO/MTR6X. This is a simplified representation of the brms (Bürkner, 2017) model code.

# Gaussian regression for latent human rights
# (replace `cs_repression` with different measures of de jure and 
# de facto civil society repression: barriers_total, advocacy, entry, 
# funding, and v2csreprss)
brm(
  bf(latent_hr_mean_lead1 ~ cs_repression + cs_repression_lag1 +
       latent_hr_mean + v2x_polyarchy + gdpcap_log +
       un_trade_pct_gdp + armed_conflict + (1 | gwcode)),
  family = gaussian(),
  prior = c(set_prior("normal(0, 10)", class = "Intercept"),
            set_prior("normal(0, 3)", class = "b"),
            set_prior("cauchy(0, 1)", class = "sd")),
  ...
)

Improved cases

Table 1: Country-year cases where including civil society restrictions improved PTS predictions
Country Year Actual Baseline prediction Total NGO barriers included Civil society repression included
Guatemala 2013 Level 3 Level 2 Level 3 Level 3
Kosovo 2012 Level 1 Level 2 Level 1 Level 1
Sierra Leone 2011 Level 3 Level 2 Level 3
Congo - Brazzaville 2011 Level 3 Level 2 Level 3 Level 3
Somalia 2013 Level 5 Level 4 Level 5
Bahrain 2011 Level 3 Level 2 Level 3 Level 3
Bahrain 2013 Level 3 Level 2 Level 3 Level 3
Libya 2011 Level 4 Level 5 Level 4

Complete model results

Table 2: Full results from ordered logistic regression models predicting political terror
Outcome in t + 1
Total barriers Barriers to advocacy Barriers to entry Barriers to funding Civil society repression
Total legal barriers 0.157
[−0.019, 0.308]
Total legal barriers (t - 1) 0.021
[−0.144, 0.186]
Barriers to advocacy 0.457
[−0.160, 1.100]
Barriers to advocacy (t - 1) −0.092
[−0.730, 0.596]
Barriers to entry 0.270
[−0.068, 0.580]
Barriers to entry (t - 1) 0.056
[−0.256, 0.404]
Barriers to funding 0.273
[−0.070, 0.616]
Barriers to funding (t - 1) 0.066
[−0.284, 0.418]
Civil society repression −0.382
[−0.666, −0.122]
Civil society repression (t - 1) 0.081
[−0.189, 0.346]
PTS = 2 2.250 2.288 2.259 2.257 2.265
[1.948, 2.542] [1.990, 2.583] [1.981, 2.572] [1.973, 2.580] [1.969, 2.571]
PTS = 3 4.221 4.305 4.242 4.236 4.297
[3.857, 4.609] [3.926, 4.685] [3.867, 4.630] [3.868, 4.625] [3.921, 4.690]
PTS = 4 6.227 6.344 6.255 6.215 6.340
[5.720, 6.696] [5.887, 6.878] [5.776, 6.733] [5.727, 6.692] [5.864, 6.826]
PTS = 5 8.566 8.628 8.588 8.535 8.619
[7.924, 9.193] [8.012, 9.278] [7.977, 9.223] [7.906, 9.135] [7.998, 9.240]
Polyarchy index −2.215 −2.302 −2.369 −2.239 −1.273
[−2.957, −1.555] [−2.959, −1.610] [−3.095, −1.725] [−2.962, −1.589] [−2.287, −0.303]
Log GDP per capita −0.471 −0.434 −0.443 −0.471 −0.424
[−0.621, −0.320] [−0.574, −0.288] [−0.584, −0.299] [−0.626, −0.321] [−0.560, −0.284]
Trade as % of GDP −0.438 −0.431 −0.422 −0.415 −0.412
[−0.751, −0.118] [−0.743, −0.096] [−0.722, −0.097] [−0.729, −0.096] [−0.740, −0.101]
Armed conflict 1.083 1.067 1.077 1.089 1.054
[0.767, 1.411] [0.737, 1.363] [0.770, 1.375] [0.769, 1.392] [0.758, 1.363]
Num.Obs. 3594 3594 3594 3594 3612
R2 0.807 0.806 0.807 0.807 0.806
R2 Marg. 0.711 0.709 0.710 0.706 0.714
LOOIC 5194.4 5219.3 5199.7 5197.7 5252.0
LOOIC s.e. 97.0 97.2 97.2 97.0 97.3
WAIC 5193.8 5218.6 5199.0 5197.0 5251.4
Posterior means; 95% credible intervals in brackets
Table 3: Full results from Gaussian regression models predicting latent human rights
Outcome in t + 1
Total barriers Barriers to advocacy Barriers to entry Barriers to funding Civil society repression
Total legal barriers −0.013
[−0.031, 0.005]
Total legal barriers (t - 1) 0.007
[−0.012, 0.025]
Barriers to advocacy −0.024
[−0.092, 0.049]
Barriers to advocacy (t - 1) 0.007
[−0.064, 0.080]
Barriers to entry −0.027
[−0.062, 0.008]
Barriers to entry (t - 1) 0.019
[−0.018, 0.053]
Barriers to funding −0.016
[−0.053, 0.021]
Barriers to funding (t - 1) 0.006
[−0.030, 0.046]
Civil society repression 0.053
[0.024, 0.083]
Civil society repression (t - 1) −0.037
[−0.067, −0.007]
Latent human rights (t) 0.964 0.964 0.964 0.965 0.963
[0.951, 0.975] [0.952, 0.975] [0.951, 0.976] [0.952, 0.975] [0.952, 0.974]
Polyarchy index 0.074 0.080 0.082 0.076 0.017
[0.032, 0.115] [0.040, 0.126] [0.040, 0.126] [0.032, 0.117] [−0.053, 0.085]
Log GDP per capita 0.008 0.007 0.007 0.008 0.009
[−0.001, 0.015] [0.000, 0.015] [−0.001, 0.015] [0.000, 0.016] [0.002, 0.017]
Trade as % of GDP 0.024 0.024 0.024 0.023 0.022
[0.002, 0.044] [0.004, 0.044] [0.003, 0.044] [0.004, 0.043] [0.002, 0.042]
Armed conflict −0.004 −0.005 −0.004 −0.005 −0.003
[−0.029, 0.021] [−0.032, 0.019] [−0.030, 0.022] [−0.030, 0.022] [−0.027, 0.023]
Intercept −0.073 −0.075 −0.073 −0.076 −0.074
[−0.136, −0.010] [−0.133, −0.011] [−0.138, −0.010] [−0.136, −0.014] [−0.134, −0.012]
Num.Obs. 3609 3609 3609 3609 3629
R2 0.969 0.968 0.969 0.968 0.968
R2 Marg. 0.968 0.968 0.968 0.968 0.968
LOOIC 47.9 49.4 51.5 49.3 61.6
LOOIC s.e. 351.7 351.1 352.4 351.2 350.5
WAIC 46.5 48.4 50.1 48.6 60.3
RMSE 0.79 0.79 0.79 0.79 0.79
Posterior means; 95% credible intervals in brackets

References

Bürkner, P.-C. (2017). brms: An R package for Bayesian multilevel models using Stan. Journal of Statistical Software, 80(1), 1–28. https://doi.org/10.18637/jss.v080.i01
R Core Team. (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.r-project.org/
Stan Development Team. (2021). Stan modeling language users guide and reference manual. http://mc-stan.org