155 lines
5.7 KiB
Markdown
155 lines
5.7 KiB
Markdown
# Wings of Unrest: Flight Connectivity and Social Instability Research
|
|
|
|
A quantitative research project investigating the relationship between global air connectivity and social unrest across 2,620 cities worldwide.
|
|
|
|
## Overview
|
|
|
|
This study explores whether cities with greater flight connectivity experience systematically different levels of protest activity compared to less connected urban areas. Using a Negative Binomial regression model, the analysis reveals that increased air connectivity is significantly associated with higher frequencies of unrest events (p < 0.001), explaining approximately 32% of the deviance.
|
|
|
|
## Key Findings
|
|
|
|
- **Air connectivity** positively correlates with protest frequency (each additional flight → 0.41% increase in expected events)
|
|
- **Population served** by airports shows strong positive association with unrest
|
|
- **Unemployment** and **freedom of expression** are positively associated with protest intensity
|
|
- **HDI** and **land area** exhibit negative associations with unrest
|
|
- Model pseudo R² = 0.323, suggesting moderate explanatory power
|
|
|
|
## Dataset
|
|
|
|
The analysis combines multiple authoritative data sources:
|
|
|
|
- **Air connectivity**: OpenFlights (2014 direct flight data)
|
|
- **Social unrest**: ACLED (Armed Conflict Location & Event Data Project, June 2020 - April 2025)
|
|
- **Economic indicators**: World Bank (GDP per capita, unemployment, land area)
|
|
- **Development metrics**: UNDP (HDI, life expectancy, education)
|
|
- **Political measures**: V-Dem (freedom of expression, civil society indices)
|
|
|
|
**Final dataset**: 2,620 cities from 191 countries
|
|
|
|
## Methodology
|
|
|
|
### Data Processing Pipeline
|
|
|
|
1. **Spatial matching**: Cities linked to airports within 50km radius using Haversine distance
|
|
2. **Service score calculation**: `score = departures / (distance + 1)` to weight airport assignment
|
|
3. **Event geocoding**: Protest events mapped to nearest city with same country constraint
|
|
4. **Country standardization**: Harmonized country names across all datasets
|
|
|
|
### Statistical Model
|
|
|
|
Negative Binomial regression (handles overdispersion in count data):
|
|
|
|
```
|
|
log(E[Number_of_Events]) = β₀ + β₁(Flights) + β₂(Population) + β₃(Land_area)
|
|
+ β₄(Unemployment) + β₅(Freedom_Expression) + β₆(HDI)
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
FlightUnrestResearch/
|
|
├── Data/ # Raw datasets (airports, routes, ACLED, V-Dem, etc.)
|
|
├── clean_data.csv # Final processed dataset for analysis
|
|
├── clean_data.ipynb # Data cleaning and preparation pipeline
|
|
├── haversine.py # Geospatial distance calculations (PyTorch-accelerated)
|
|
├── mappings.py # Country name standardization mappings
|
|
├── FINAL_r_reg_final.ipynb # Statistical analysis (Negative Binomial regression)
|
|
├── final_paper.pdf # Complete research paper with literature review
|
|
└── final_paper.odt # Source document
|
|
```
|
|
|
|
## Core Components
|
|
|
|
### `haversine.py`
|
|
PyTorch-accelerated geospatial functions for large-scale spatial assignments:
|
|
- `calculate_served_population()`: Assigns city populations to airports using weighted scoring
|
|
- `assign_events_to_cities()`: Maps protest events to nearest cities via Haversine distance
|
|
|
|
### `clean_data.ipynb`
|
|
Complete data pipeline:
|
|
- Merges flight routes with airport locations
|
|
- Calculates served populations within 50km radius
|
|
- Geocodes 428K+ ACLED events to cities
|
|
- Integrates World Bank, V-Dem, and HDI indicators
|
|
- Handles missing data and country name harmonization
|
|
|
|
### `FINAL_r_reg_final.ipynb`
|
|
Statistical analysis in R:
|
|
- Negative Binomial regression model
|
|
- Multicollinearity diagnostics (VIF analysis)
|
|
- Model fit evaluation (pseudo R², deviance)
|
|
- Coefficient interpretation and significance testing
|
|
|
|
## Requirements
|
|
|
|
### Python
|
|
```
|
|
pandas
|
|
numpy
|
|
torch
|
|
openpyxl
|
|
tqdm
|
|
```
|
|
|
|
### R
|
|
```
|
|
MASS (for glm.nb)
|
|
```
|
|
|
|
## Usage
|
|
|
|
### 1. Data Preparation
|
|
```bash
|
|
jupyter notebook clean_data.ipynb
|
|
```
|
|
Outputs: `clean_data.csv` with all variables merged and geocoded
|
|
|
|
### 2. Statistical Analysis
|
|
```bash
|
|
jupyter notebook FINAL_r_reg_final.ipynb
|
|
```
|
|
Runs regression model and produces coefficient tables
|
|
|
|
## Key Variables
|
|
|
|
| Variable | Description | Source |
|
|
|----------|-------------|--------|
|
|
| `Number_of_Flights` | Total direct flights at city airports | OpenFlights |
|
|
| `Number_of_Events` | Protest/riot incidents (Jun 2020-Apr 2025) | ACLED |
|
|
| `Served_Population` | Population within 50km of airports | Cities database + calculation |
|
|
| `GDP_per_capita` | National GDP per capita (2019) | World Bank |
|
|
| `Unemployment` | National unemployment rate (2019) | World Bank |
|
|
| `HDI` | Human Development Index | UNDP |
|
|
| `Freedom_of_Expression` | Civil liberties index (2021) | V-Dem |
|
|
| `Civil_Society_Index` | Civil society strength (2021) | V-Dem |
|
|
|
|
## Limitations
|
|
|
|
- **Cross-sectional design**: Cannot establish causality
|
|
- **Temporal mismatch**: Flight data (2014) vs. protest data (2020-2025)
|
|
- **Measurement error**: Potential ACLED under-reporting in authoritarian contexts
|
|
- **National-level controls**: HDI, unemployment applied uniformly within countries
|
|
- **Spatial uncertainty**: 50km radius may misrepresent complex metro areas
|
|
- **Data access**: High-resolution aviation data remains proprietary
|
|
|
|
## Citation
|
|
|
|
Bitton, R. (2025). *Wings of Unrest: The Relationship Between Global Flight Connectivity and Social Instability*.
|
|
|
|
## Related Research
|
|
|
|
This work contributes to literature on:
|
|
- Globalization and domestic political contention
|
|
- Infrastructure networks and protest diffusion
|
|
- Urban political dynamics and global integration
|
|
- Spatial determinants of collective action
|
|
|
|
## Contact
|
|
|
|
Raphael Bitton
|
|
rbitton@uchicago.edu
|
|
|
|
## License
|
|
|
|
Research data sourced from publicly available datasets. Analysis code available for academic use.
|