Spec 2 sponsor-label permutation null: 500 random reassignments of sponsored_by across the FWL-residualized panel produce a null distribution centered on 0.005 pp (sd 0.62, max |β| = 2.07). The observed β = +6.86 pp is unreachable in 500 draws — permutation p < 1/B (= 0.002), about 11 null SDs away from the observed magnitude.

Confidence
green
Type
robustness
Design
Sample
Spec 2 sample (22,665 rows after the matched_share == 1.0 + estimulado + non-aggregate filters).
Specification
FWL-residualize y (error) and sponsored_by against the other controls + candidate FE + pollster FE. Then row-level random permutation of x_tilde across the panel. B = 500 draws.
Cluster
muni (matches Spec 2 baseline)
Notes
AN-011 already runs an analogous permutation for Spec 3c at the (race × week) cell level. This is the missing analog for Spec 2.
Script
source/analysis/an-068-spec2-permutation.py
Target
build/table/an-068-spec2-permutation.csv
Status
interpreted · 2026-06-14
Created
2026-06-14

Question

GPT-5-pro's 2026-06-14 pre-submission review asked for a candidate-level sign-flip or sponsor-label permutation for Spec 2. AN-011 has a within-(race × week) permutation for Spec 3c but the analog for Spec 2 was missing. The test asks: under the null that sponsored_by is independent of error conditional on the FE structure, what is the distribution of β?

Design

Two-step FWL residualization (mirrors AN-031's bootstrap scaffold):

  1. Residualize error against (opponent_sponsored, log_sample_size, days_to_election, days_to_election_sq) plus candidate FE plus pollster FE → y_tilde.
  2. Residualize sponsored_by against the same → x_tilde.
  3. Observed β = (x_tilde · y_tilde) / (x_tilde · x_tilde).
  4. For each of B = 500 permutations: random shuffle of x_tilde across the 22,665 rows; recompute β_perm.
  5. Two-sided permutation p = share of |β_perm| ≥ |β_obs|.

Results

| Statistic | Value | |---|---| | Observed β (Spec 2, FWL-residualized) | +6.86 pp | | Null distribution mean | +0.005 | | Null distribution sd | 0.62 | | Null distribution 95th percentile of |β| | 1.20 | | Null distribution max |β| (B = 500) | 2.07 | | Two-sided permutation p | < 0.002 (0 of 500) |

The observed β is ~11 null standard deviations above the null mean. None of 500 random permutations reaches even a third of the observed magnitude. The null max |β| (2.07 pp) is itself the extreme tail of B = 500 draws.

Interpretation

Caveats

Follow-ups