Asymmetric Affective Polarization in Elite and Public Discourse: Evidence from the Black Lives Matter Uprising
Author: Sylvia Dou Status: Master's Thesis (2026)
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.
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
| 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) |
| 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 |
.
├── 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
-
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).
-
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).
-
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.
- 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
The three numbered notebooks (01_, 02_, 03_) form a sequential pipeline:
01_data_collection.ipynb— Retrieves tweets via API, performs bot removal and victim filtering, merges elite + public corpora intotweets_merged_clean.csv.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.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 inresults/are fully included to support reproducibility of the analysis stage.
For the purpose of academic discussion. Please do not clone or cite.