Skip to content

sylviachangdou-prayer/Asymmetric_polarization

Repository files navigation

Asymmetric Affective Polarization in Elite and Public Discourse: Evidence from the Black Lives Matter Uprising

Author: Sylvia Dou Status: Master's Thesis (2026)

Abstract

Does affective polarization respond symmetrically to a major sociopolitical shock? This study uses the death of George Floyd (May 25, 2020) and the subsequent BLM uprising as a natural experiment to examine how partisan sentiment, moral rhetoric, and destructive language shifted among both political elites (U.S. Congress, Governors, Presidents) and the mass public on Twitter/X. Using an original dataset of 139,064 tweets collected within a ±100-day window, I employ zero-shot stance classification (BART-MNLI) for party identification and construct five text-based measures of affective polarization. Interrupted Time Series (ITS) models — complemented by LOWESS smoothing and Gaussian kernel-weighted local linear regression — reveal striking asymmetries: Democrats and Republicans mobilize different affective registers in response to the same event, and elite discourse amplifies these partisan asymmetries relative to the public.

Research Design

Event shock:       George Floyd death, May 25 2020
Observation window: ±100 days (Feb 14 – Sep 2, 2020)
Unit of analysis:  Daily party-source aggregated tweet measures
Identification:    Interrupted Time Series (OLS) + LOWESS + Kernel RD

Measures

Measure Method Reference
Ideology Score P(Dem) Zero-shot BART-MNLI Lewis et al. (2020)
Sentiment (VADER) Lexicon-based compound score Hutto & Gilbert (2014)
Moral Foundations (eMFD) Dictionary scoring across 5 foundations Hopp et al. (2021)
Moral Outrage Dictionary count (19 words) Brady et al. (2017)
Destructive Toxicity Toxic-BERT probability Hanu & Unitary (2020)

Models

Approach Specification Purpose
OLS ITS Y_t = β₀ + β₁·Time + β₂·Intervention + β₃·TimeAfter + ε Primary: shock effect (β₂) and slope change (β₃)
LOWESS Local weighted regression, f = 0.18, ±14-day window Robustness: relaxes global linearity
Kernel RD Gaussian kernel WLS, h = 30 days, HC1 SEs Robustness: RD-style local linear estimates

Repository Structure

.
├── 01_data_collection.ipynb           # Stage 1: API collection, cleaning, merging
├── 02_stance_feature_extraction.ipynb # Stage 2: Stance classification, feature extraction
├── 03_ITS_models.ipynb                # Stage 3: ITS, LOWESS, Kernel RD models
│
├── data/
│   └── processed/                     # Aggregated analysis-ready datasets (see note)
│
├── results/
│   ├── tables/                        # CSV + LaTeX regression tables
│   │   ├── its_results_ols.csv        # OLS ITS coefficients (20 models)
│   │   ├── lowess_model_stats.csv     # LOWESS slope estimates
│   │   ├── kernel_model_stats.csv     # Kernel RD intercepts & slopes
│   │   ├── feature_descriptives.csv   # Descriptive stats by group × party × period
│   │   └── feature_prepost_diffs.csv  # Pre/Post mean differences
│   └── plots/                         # Publication-quality figures (PNG)
│
├── build_paper.py                     # Script to generate paper draft (.docx)
├── ANALYSIS_SUMMARY.md                # Analysis documentation
└── README.md

Key Findings

  1. Asymmetric affective channels. Democrats responded to BLM with moral intensification (eMFD shock β = 0.384, p < .01 elite; β = 0.125, p < .001 public) and sentiment improvement, while Republicans responded with ideological consolidation (R² = 0.79) and, uniquely, a gradual escalation in toxicity (slope β = 0.0003, p < .05).

  2. Elite amplification. Elite affective shifts were 2–6× larger in magnitude than corresponding public shifts across every measure, consistent with elite-cue theory (Zaller, 1992).

  3. Temporal dynamics differ. Elite responses are more shock-like (significant β₂, non-significant β₃), while public responses show both shocks and sustained trend changes — suggesting elites mobilize abruptly while the public adjusts gradually.

Technical Stack

  • Data collection: Twitter API via twitterapi.io
  • Stance classification: Zero-shot NLI with facebook/bart-large-mnli (Hugging Face Transformers)
  • Feature extraction: VADER sentiment, Toxic-BERT, eMFD dictionary scoring
  • Modeling: statsmodels (OLS, WLS, LOWESS)
  • Visualization: matplotlib, seaborn

Reproducibility

The three numbered notebooks (01_, 02_, 03_) form a sequential pipeline:

  1. 01_data_collection.ipynb — Retrieves tweets via API, performs bot removal and victim filtering, merges elite + public corpora into tweets_merged_clean.csv.
  2. 02_stance_feature_extraction.ipynb — Runs zero-shot stance inference, validates against elite ground truth (accuracy = 83.7%, macro-F1 = 0.755), computes all affective measures, and generates descriptive tables and figures.
  3. 03_ITS_models.ipynb — Estimates 20 OLS ITS regressions (5 measures × 2 sources × 2 parties), fits LOWESS and kernel RD alternatives, and produces all time-series visualizations.

Note: Raw tweet data (data/raw/) is not included in this repository due to Twitter/X Terms of Service. Processed aggregate-level results in results/ are fully included to support reproducibility of the analysis stage.

License

For the purpose of academic discussion. Please do not clone or cite.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages