DOI: 10.5281/zenodo.15058161
title: Nou Pa Bèt: Civic Substitution and Expressive Freedoms in Post-State Governance

description: Replication Instructions: Civic Engagement and Governance Analysis

Overview

This paper includes fully reproducible quantitative analysis using Python in Google Colab. To replicate our regression models and statistical tests, you will need to download and execute the Jupyter notebook (civic.ipynb) that accompanies this publication. 

This study utilizes the Varieties of Democracy (V-Dem) Country-Year Dataset v15 (2025) to analyze cross-national patterns of civic engagement. The V-Dem dataset is one of the most comprehensive expert-coded political science databases available, widely adopted for research on democratic governance and institutional quality. For this analysis, we focus on a targeted sample of low-income fragile states and high-income democracies, using the most recent ten-year period (2015–2024) to capture contemporary governance dynamics. The dataset includes six core indicators that serve as proxies for civic engagement and participatory governance: the Participatory Component Index (v2x_partip), Civil Society Participation Index (v2x_cspart), Freedom of Peaceful Assembly and Demonstration (v2cademmob), Freedom of Expression (v2cafres), Anti-System Movements (v2csantimv), and the Direct Popular Vote Index (v2xdd_dd). These variables collectively represent institutionalized opportunities for citizen participation, associational life, expressive freedoms, and mechanisms of direct democracy.

Data processing was conducted in Python via Google Colab to ensure reproducibility, systematic filtering, and efficient management of country-year panel structures. Observations with low coder coverage (fewer than three expert raters per variable-year) were flagged and excluded to mitigate the risk of measurement error and ensure validity. This multidimensional and methodologically rigorous dataset enables granular comparisons across countries and over time. By employing empirically validated indicators, the V-Dem dataset provides a robust analytical foundation for exploring the role of civic engagement in shaping governance outcomes—particularly in fragile states like Haiti, where institutional voids hinder formal governance mechanisms and civic empowerment plays a critical role in reform pathways.

Download civic.ipynb here to run regressions. 

What You'll Reproduce

By running the notebook, you will generate:





Two OLS Regression Models examining the relationship between civic engagement indicators and governance outcomes:



Model 1: Control of Corruption (dependent variable)

Model 2: Government Effectiveness (dependent variable)





ANOVA Analysis comparing civic engagement levels between fragile states and durable democracies




Descriptive Statistics for all variables in the analysis




Data Visualizations including correlation matrices and coefficient plots



Expected Results

Regression Results (Table 2)

When you run the analysis, you should see:

Control of Corruption Model:



Participatory Component Index: β = 2.89, p < 0.001 ✓ (Highly significant positive effect)

Freedom of Expression: β = 0.17, p = 0.028 ✓ (Significant positive effect)

Freedom of Peaceful Assembly: β = -0.26, p < 0.001 ✓ (Significant negative effect)

Anti-System Movements: β = -0.42, p < 0.001 ✓ (Significant negative effect)

Civil Society Participation: β = 0.64, p = 0.201 (Not significant)

Direct Popular Vote Index: β = -0.67, p = 0.146 (Not significant)


Government Effectiveness Model:



Participatory Component Index: β = 3.04, p < 0.001 ✓ (Highly significant positive effect)

Freedom of Peaceful Assembly: β = -0.27, p < 0.001 ✓ (Significant negative effect)

Anti-System Movements: β = -0.45, p < 0.001 ✓ (Significant negative effect)

Freedom of Expression: β = 0.10, p = 0.233 (Not significant)

Civil Society Participation: β = 0.65, p = 0.220 (Not significant)

Direct Popular Vote Index: β = -0.64, p = 0.187 (Not significant)


ANOVA Results (Table 3)

You should see highly significant differences between fragile and durable states across all four indicators:



Participatory Component Index: F = 53.9, p < 0.001

Civil Society Participation: F = 39.8, p < 0.001

Freedom of Expression: F = 36.3, p < 0.001

Freedom of Peaceful Assembly: F = 34.7, p < 0.001




Step-by-Step Replication Guide

Prerequisites



Google account (for Google Colab access)

Internet connection

Web browser (Chrome, Firefox, Safari, or Edge)


No software installation required — everything runs in the cloud via Google Colab.



Step 1: Access the Dataset and Notebook

Option A: Download from Zenodo (Recommended)



Visit the dataset repository: https://doi.org/10.5281/zenodo.15058161

Download three files:



civic.ipynb (Jupyter notebook with analysis code)

CivicEngagement_SelectedCountries_Last10Years.xlsx (V-Dem data)

wgidataset.xlsx (World Bank WGI data)




Option B: Access via Paper Supplementary Materials

If provided by the journal, download the replication package containing all three files.



Step 2: Upload to Google Colab



Go to https://colab.research.google.com/

Sign in with your Google account

Click File → Upload notebook

Select civic.ipynb from your downloads folder

The notebook will open in a new browser tab




Step 3: Upload Data Files to Colab

Once the notebook is open:



Look for the Files panel on the left sidebar (folder icon)

Click the Upload button (page with up arrow icon)

Upload both Excel files:



CivicEngagement_SelectedCountries_Last10Years.xlsx

wgidataset.xlsx




Note: Files uploaded to Colab are temporary and will be deleted when your session ends. You'll need to re-upload them each time you open the notebook.

Alternative (Persistent Storage):



Mount your Google Drive: Run the cell with from google.colab import drive and drive.mount('/content/drive')

Upload data files to a folder in your Google Drive

Update file paths in the notebook to point to your Drive folder




Step 4: Install Required Python Packages

The notebook includes cells to install necessary packages. Run these cells in order:

!pip install pandas openpyxl statsmodels matplotlib seaborn scipy


You should see:



Installation progress bars

"Successfully installed..." messages

No error messages


If you encounter errors:



Try running the cell again

Check your internet connection

Verify you're using a standard Colab runtime (not a restricted environment)




Step 5: Execute the Analysis Cells

Run each code cell in sequence by:



Clicking the Play button (▶) to the left of each cell, OR

Using keyboard shortcut: Shift + Enter


Important: Run cells in order from top to bottom. Later cells depend on variables and functions defined in earlier cells.

You should see:





Data Loading Section:



Confirmation messages: "Data loaded successfully"

Dataframe previews showing first few rows

Shape information (number of rows and columns)





Data Cleaning Section:



Summary of missing values

Confirmation of listwise deletion

Final sample size (should be ~270 country-year observations)





Descriptive Statistics Section:



Tables showing mean, standard deviation, min, max for all variables

Correlation matrix heatmap





Regression Analysis Section:



Full regression output tables matching Table 2 in the paper

Coefficient estimates, standard errors, t-statistics, p-values

R-squared values and model diagnostics





ANOVA Section:



F-statistics and p-values matching Table 3

Group means for fragile vs. durable states





Visualizations Section:



Coefficient plots showing effect sizes with confidence intervals

Scatter plots of key relationships

Distribution plots comparing fragile and durable states






Step 6: Verify Your Results Match the Paper

Check these key values:

✓ Participatory Component Index (Control of Corruption): β ≈ 2.89, p < 0.001✓ Freedom of Expression (Control of Corruption): β ≈ 0.17, p ≈ 0.028✓ R-squared for Control of Corruption model: R² ≈ 0.79✓ ANOVA F-statistic for Participatory Index: F ≈ 53.9, p < 0.001

If your results differ slightly:



Minor numerical differences (±0.01) are normal due to floating-point precision

Ensure you're using the correct data files

Verify you ran all cells in order

Check that no cells produced error messages




Step 7: Modify and Extend (Optional)

The notebook is designed for transparency and extensibility. You can:

Explore Alternative Specifications:



Add or remove control variables

Test interaction effects

Run robustness checks with different subsamples


Example modifications included in notebook:



Robust standard errors (default)

Bootstrap confidence intervals

Sensitivity analysis excluding outliers


Generate Additional Visualizations:



Change plot styles and colors

Create custom graphics for presentations

Export high-resolution figures


Export Results:



Download regression tables as CSV

Save figures as PNG or PDF

Generate formatted LaTeX tables




Troubleshooting Common Issues

"File not found" error

Solution: Verify data files are uploaded to Colab. Check the Files panel (left sidebar) to confirm both Excel files are present.

"ModuleNotFoundError" or "ImportError"

Solution: Run the package installation cell: !pip install pandas openpyxl statsmodels ...

Results differ from paper

Solution:



Confirm you're using the exact data files from Zenodo

Verify all cells were executed in order

Check for error messages in earlier cells


"Memory error" or session crash

Solution:



Restart the runtime: Runtime → Restart runtime

Re-upload data files

Execute cells again from the beginning


Colab disconnects or times out

Solution:



Colab sessions timeout after ~90 minutes of inactivity

Save any modified code to your Google Drive

Reconnect and re-run cells




Technical Specifications

Software Environment:



Python 3.10+

pandas 2.0+

statsmodels 0.14+

matplotlib 3.7+

seaborn 0.12+

scipy 1.11+


Computational Requirements:



Runtime: ~2-5 minutes on standard Colab instance

Memory: ~2GB RAM

No GPU required


Operating System:



Platform-independent (runs in browser)

Tested on: Windows, macOS, Linux, ChromeOS




Data Sources and Licensing

V-Dem Dataset (v15, 2025):



Source: Varieties of Democracy Institute

License: CC BY-SA 4.0

Citation: Coppedge et al. (2025)


World Governance Indicators (2024):



Source: World Bank

License: CC BY 4.0

Citation: Kaufmann, Kraay & Mastruzzi (2024)


Analysis Code:



License: CC BY 4.0

Authors: Brown, Fils-Aime, LaTortue




Citation

If you use this replication package in your research, please cite:



Brown, S.M., Fils-Aime, J., & LaTortue, P. (2026). Nou Pa Bèt: Civic Substitution and Expressive Freedoms in Post-State Governance. Third World Quarterly. DOI: [to be assigned]


And cite the data repository:



Brown, S.M., Fils-Aime, J., & LaTortue, P. (2025). Corporate Governance under Institutional Collapse: Civic Engagement, Ethical Embeddedness, and Reform in Haiti [Data set]. Zenodo. https://doi.org/10.5281/zenodo.15058161




Support and Contact

For technical issues with replication:



Check the Zenodo repository for updates: https://doi.org/10.5281/zenodo.15058161

Review the notebook's built-in documentation and comments


For questions about methodology or interpretation:



Contact corresponding author: scott.brown@upr.edu


For dataset questions:



V-Dem data: support@v-dem.net

WGI data: World Bank Open Data Help Desk




FAIR Principles Compliance

This replication package adheres to FAIR data principles:

Findable: Persistent DOI assigned via ZenodoAccessible: Open access, no authentication requiredInteroperable: Standard formats (XLSX, IPYNB), documented codeReusable: Clear licensing (CC BY 4.0), comprehensive documentation



Acknowledgments

We thank the V-Dem Institute and World Bank for making high-quality governance data publicly available. This analysis was conducted using open-source software to ensure maximum accessibility and reproducibility.



Ready to Begin?



Download civic.ipynb from Zenodo

Upload to Google Colab

Upload the two Excel data files

Run all cells in order

Verify results match Tables 2 and 3

Explore, modify, and extend as desired


Happy replicating!