Skip to content

AlvaroGarrisCalzada/UN_Analysis

Repository files navigation

Quantitative Analysis of United Nations General Assembly Voting Patterns (1981–2025)

Global Alignment, Bloc Formation, and the Structural Isolation of the United States

Author: Alvaro Garriscalzada
Date: February 2026
Dataset: United Nations Digital Library — 947,434 vote records · 5,694 resolutions · 202 member states


Abstract

This study examines voting patterns in the United Nations General Assembly (UNGA) across eight U.S. presidential administrations, from Reagan (1981) through Trump II (2025). Using Pearson correlation–based alignment scoring, K-means clustering on PCA-reduced vote matrices, and topic-level disaggregation, the analysis reveals the structural and persistent isolation of the United States within the General Assembly — across all administrations and all substantive topic categories.

Headline findings

Finding Detail
U.S. isolation is structural The global pro-US mean has been negative for every presidency except Bush Sr (+0.031)
Trump II is the deepest low Pro-US mean of −0.171, the lowest in the dataset
China is the consensus power Highest global agreement rate on all 10 topic categories
Only Israel is a majority ally 75.6% agreement; the next closest (Micronesia) is 55.4%
Biden → Trump II transition 97.4% cluster switching — near-total global realignment
U.S. majority on 1 topic only Terrorism & Security (51.6%, based on 34 resolutions)

Repository Structure

UN_Analysis/
├── code/
│   ├── un_analysis.py                        # Core analysis pipeline (clustering, PCA, alignment)
│   ├── generate_comprehensive_report.py      # Generates the full country-by-country report
│   └── generate_linkedin_graphs.py           # Generates publication-ready figures
├── data/
│   ├── raw/
│   │   └── 2026_02_06_ga_voting.csv          # ⛔ Not in repo (207 MB) — see Data Source below
│   ├── global_analysis/
│   │   ├── country_alignment_scores.csv      # Pro-US alignment score per country
│   │   ├── country_clusters_overall.csv      # Cluster assignments (202 countries)
│   │   ├── cluster_switching_rates.csv       # Inter-presidency cluster transition rates
│   │   ├── presidency_summary_metrics.csv    # Per-presidency aggregate statistics
│   │   ├── topic_alignment_by_presidency.csv # Topic × presidency alignment matrix
│   │   ├── topic_summary_by_presidency.csv   # Topic-level agreement percentages
│   │   ├── divisive_resolutions_*.csv        # Most divisive resolutions per presidency (×8)
│   │   └── presidency_clusters_*.csv         # Cluster membership per presidency (×8)
│   ├── presidency_clusters/                  # Duplicate cluster CSVs for convenience
│   └── presidency_divisive/                  # Duplicate divisive-resolution CSVs
├── pictures/
│   ├── pca/                                  # PCA cluster scatter plots per presidency
│   ├── pro_us_histograms/                    # Pro-US score distributions per presidency
│   ├── global/
│   │   └── umap_clusters.png                 # UMAP projection of the full vote matrix
│   ├── pca_*.png                             # Individual PCA plots (top-level copies)
│   └── pro_us_hist_*.png                     # Individual histogram plots (top-level copies)
├── interactive_maps/
│   └── un_alignment_interactive_map.html     # Interactive choropleth (Plotly)
├── reports/
│   ├── ANALYSIS_SUMMARY.md                   # Executive summary of all findings
│   ├── COMPLETE_RESULTS_REPORT.md            # Full statistical results
│   └── COMPREHENSIVE_COUNTRY_ANALYSIS.md     # Country-by-country breakdown
├── linkedin_post/
│   ├── LINKEDIN_POST.md                      # Publication text
│   └── *.png                                 # 20 publication-ready figures
├── logs/
│   ├── run_output.txt                        # Full pipeline stdout
│   └── presidency_analysis_log.txt           # Detailed analysis log
├── github/
│   └── unga-global-alignment-analysis/       # Original GitHub repo scaffold + paper
├── .gitignore
└── README.md

Data Source

All voting records were obtained from the United Nations Digital Library (digitallibrary.un.org), snapshot dated 2026-02-06.

The raw file (2026_02_06_ga_voting.csv, 207 MB, 947,434 rows) exceeds GitHub's 100 MB limit and is not included in this repository. To reproduce the analysis:

  1. Visit digitallibrary.un.org
  2. Navigate to Voting Data → General Assembly
  3. Download all roll-call votes and save as data/raw/2026_02_06_ga_voting.csv

All processed CSVs in data/global_analysis/, data/presidency_clusters/, and data/presidency_divisive/ are included and are sufficient to explore the results without the raw data.


Methodology

Step Method Detail
Vote Encoding Ternary Yes = +1, No = −1, Abstain = 0, Absent = NaN
Alignment Score Pearson correlation Country vote vector vs. U.S. vote vector per presidency
Dimensionality Reduction PCA Retaining 95% of variance
Clustering K-means Optimal k selected by silhouette score maximization
Topic Classification Keyword matching 5,694 resolutions → 10 categories from 438 UN subject fields
Cluster Switching Transition rate % of countries changing cluster at each presidential transition

The ternary encoding was validated empirically: silhouette score of 0.44 vs. 0.30 for binary encoding.


Key Results

Pro-US Alignment by Presidency

Presidency Period Pro-US Mean Resolutions Countries
Bush Sr 1989–1992 +0.031 352 180
Clinton 1993–2000 +0.007 563 188
Reagan 1981–1988 −0.033 1,198 158
Biden 2021–2024 −0.012 358 193
Obama 2009–2016 −0.057 586 193
Trump I 2017–2020 −0.077 401 193
Bush Jr 2001–2008 −0.111 627 194
Trump II 2025–present −0.171 192 191

Top 10 Most Aligned Countries (Overall)

Rank Country Alignment
1 Israel +0.713
2 Germany (West) +0.623
3 Micronesia +0.588
4 Canada +0.542
5 United Kingdom +0.533
6 Marshall Islands +0.494
7 Australia +0.487
8 Palau +0.478
9 Luxembourg +0.474
10 Italy +0.473

Top 10 Most Opposed Countries (Overall)

Rank Country Alignment
1 North Korea −0.612
2 Cuba −0.506
3 Syria −0.501
4 Vietnam −0.474
5 Algeria −0.440
6 Namibia −0.434
7 Angola −0.414
8 USSR −0.407
9 Eritrea −0.396
10 Libya −0.379

Superpower Bloc Comparison

Power Countries >50% agreement Countries >80% agreement Top ally agreement
China ~170 ~90 North Korea (93%)
Russia ~120 ~5 Belarus (77%)
USA ~15 0 Israel (76%)

Topic-Level U.S. Agreement Rates

Topic Resolutions U.S. Agreement %
Terrorism & Security 34 51.6%
International Law & UN Reform 291 34.2%
Health & Humanitarian 44 31.8%
Human Rights 813 27.8%
Economic Development 158 22.8%
Nuclear & Disarmament 1,100 18.5%
Specific Country Situations 135 17.0%
Environment & Climate 17 11.8%
Palestine & Middle East 829 6.6%
Decolonization & Sovereignty 358 5.0%

Cluster Switching at Presidential Transitions

Transition Switching Rate
Biden → Trump II 97.4%
Bush Sr → Clinton 66.5%
Clinton → Bush Jr 55.2%
Bush Jr → Obama 49.7%
Obama → Trump I 45.3%
Trump I → Biden 42.8%
Reagan → Bush Sr 38.1%

Interactive Visualizations

Open interactive_maps/un_alignment_interactive_map.html in a browser to explore an interactive global choropleth showing pro-US alignment by country and presidency.


Figures

PCA Cluster Visualizations

Located in pictures/pca/. Each plot shows the 2D PCA projection of country vote vectors for a single presidency, colored by K-means cluster assignment.

Pro-US Score Distributions

Located in pictures/pro_us_histograms/. Histograms showing the distribution of pro-US alignment scores across all countries for each presidency.

LinkedIn Publication Figures

Located in linkedin_post/. A curated set of 20 publication-ready figures covering isolation trends, topic heatmaps, bloc sizes, radar charts, and network visualizations.


Requirements

python >= 3.9
pandas >= 1.5
numpy >= 1.23
scikit-learn >= 1.2
scipy >= 1.10
matplotlib >= 3.6
seaborn >= 0.12
networkx >= 3.0
python-louvain >= 0.16
umap-learn >= 0.5
plotly >= 5.0
pycountry >= 22.3

Install with:

pip install pandas numpy scikit-learn scipy matplotlib seaborn networkx python-louvain umap-learn plotly pycountry

Reproducibility

# 1. Place raw data at data/raw/2026_02_06_ga_voting.csv

# 2. Run the core analysis (generates clusters, alignment scores, PCA plots, histograms)
python code/un_analysis.py

# 3. Generate the comprehensive country report
python code/generate_comprehensive_report.py

# 4. Generate LinkedIn publication figures
python code/generate_linkedin_graphs.py

Related Projects

Project Repository
European Cohesion Analysis unga-european-cohesion-analysis
Influence Power Index unga-influence-power-index

Citation

Garriscalzada, A. (2026). Quantitative Analysis of United Nations General Assembly
Voting Patterns (1981–2025): Global Alignment, Bloc Formation, and the Structural
Isolation of the United States. GitHub repository.
https://github.com/AlvaroGarrisCalzada/UN_Analysis

License

This project is licensed under the MIT License. The underlying UN voting data is in the public domain.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors