SPB Git

spb/wp35_uqo

Public
18.7 KB

# WP35 — Pre-registration of the empirical tests

Status: FROZEN on 2026-11-01 before any predictor–outcome association was computed. The SHA-256 of this file at freeze time is recorded in research/decisions.md (D-003). Any later change is an amendment, numbered in research/decisions.md, with its date, reason, and whether it was made before or after seeing the corresponding results.

Author of the plan: the autonomous executor (Claude Code), under the PI's mandate (docs/MANDATE_VERBATIM.txt). What was inspected before writing this plan (and nothing else): the structure of every raw file (sheet names, variable names, row counts, value vocabularies, date coverage, outcome code frequencies) — see results/logs/feasibility_report.md and the execution log. No cross-tabulation or correlation between any candidate predictor and any outcome was examined.


# 1. Research question and hypotheses as they will be tested

The theoretical object is the gap between a society's coordination demand $D$ (how much has to be coordinated: people, territory, settlements, hierarchy of settlements) and its coordination capacity $K$ (administrative institutions, standardized rules and money, communication infrastructure, record-keeping). The coordination pressure is $P = z(\log D) - z(K)$. The Social Compression Hypothesis (SCH) says that institutions are compression devices in the ordinary (not Shannon) sense: they lower the communication and verification cost per coordinated task, which lets a society sustain larger $D$ at bounded cost, and that sustained high $P$ precedes instability.

ID Testable statement (EMPIRICAL unless noted) Datasets Pre-specified falsifier
H1 Polities/societies with higher $K$ have larger scale ($\log$ population, $\log$ territory, settlement hierarchy), conditional on era, region, subsistence/production infrastructure and military technology. Direction of causality is not claimed. Seshat (polity), D-PLACE EA (society), V-Dem+Maddison (country-year) The partial association of $K$ with $\log D$ is not positive (95% CI includes 0 or is negative) in the primary Seshat specification, or its sign is not stable across the three datasets.
H2 Higher pre-crisis $P$ predicts more severe / more likely subsequent instability than conventional baselines. Seshat CrisisDB (severity among crisis cases), Seshat polity duration (hazard), V-Dem (onset panel) $\beta_P$ not positive at the Holm-adjusted 5% level or the $P$ model does not beat every baseline in out-of-sample log-likelihood (forward-chaining and leave-region-out).
H3 (SIMULATED) In agent-based experiments, shared protocols / standardized records / administration lower the number of messages and bytes per successfully coordinated task relative to no-institution baselines, at the price of fixed overhead. Simulation (Phase 5) Institutional regimes do not reduce cost-per-success in the majority of the factorial cells, or only do so in cells with implausible parameters.
H4 The relation between $P$ and instability is non-linear (threshold). Seshat, V-Dem A hinge/spline model does not improve out-of-sample log-likelihood over the linear-in-$P$ model in $\ge 80%$ of folds. If so, H4 is rejected and only the smooth form is reported.
H5 H1/H2 estimates generalise across held-out macro-regions and eras. Seshat, V-Dem In any held-out macro-region or era block, the sign of $\beta_P$ reverses with a CI excluding the pooled estimate → the domain of the claim is narrowed to the blocks where it holds, and this is stated in the abstract.

Competing explanations recorded as covariates or rival models (never dropped): military competition (warfare technology index), environmental/epidemic shock (CrisisDB epidemic flag used as covariate, never as outcome), geography (region, UTM zone/latitude band), resource base (agricultural/production infrastructure index, subsistence type in EA), inequality/stratification (EA class differentiation; Seshat has no direct measure → stated limitation), coercion (professional soldiers/military officers), elite conflict (not directly measurable in Polaris → limitation), cultural diffusion and non-independence (region/NGA random effects, language family in EA), selection (CrisisDB is a crisis-selected sample → §3.2).


# 2. Units, samples and exclusions (fixed before analysis)

# 2.1 Historical panel A — Seshat Polaris-2026

  • Unit: polity (polity_id, 626 in the Polities sheet). Reason: 24,401 of 26,033 social-complexity facts carry no year_from; they describe the whole polity period. A polity-year panel would be an interpolation that the data do not support. Within-polity dated facts (1,632) are used only (i) to build "pre-crisis" versions of $D$ when a dated value exists before the crisis start, and (ii) for descriptive trajectories.
  • Time stamp of a polity: midpoint $(start_year + end_year)/2$; era blocks: $<-1000$, $-1000$ to $0$, $1$–$1000$, $1001$–$1500$, $1501$–$1800$, $>1800$ (CE). Region: seshat_region (42) nested in 10 macro-regions defined in configs/regions.yaml (fixed before analysis; continents/sub-continents).
  • Exclusions: a polity enters a $P$-based model only if it has at least one coded $D$ scale variable (population or territory) and at least 50% of the $K$ indicators coded (non-missing after §4 rules). Polities coded quasi-polity in polity_degree_of_centralization are kept but flagged; a sensitivity analysis drops them.
  • Duplicate entities: polity_id is unique in Polities; chained polities (e.g. cn_qing_dyn_1/2) are separate units and share an NGA random effect.

# 2.2 Ethnographic cross-section B — D-PLACE Ethnographic Atlas v3.3

  • Unit: society (1,291 in societies.csv). Variables: EA031 (mean size of local communities), EA202 (population size), EA030 (settlement pattern) as $D$; EA033 (jurisdictional hierarchy beyond the local community), EA032 (local jurisdictional hierarchy), EA072/EA073 (political succession), EA090 (political integration) as $K$-side political organisation; EA066/EA067/EA068 (class/caste) as inequality covariates; EA005/EA028/EA042 subsistence covariates. No instability outcome exists in the EA → B is used for H1 only.
  • Galton's problem: language family (Glottocode → family via Glottolog mapping included in D-PLACE), region, and spatial coordinates (Conley-type spatial HAC standard errors with 500 km and 1,000 km cut-offs).

# 2.3 Modern panel C — V-Dem v16 + Maddison 2023

  • Unit: country-year, 1789–2025 (V-Dem). Country identifiers: V-Dem country_id/country_text_id; Maddison countrycode (ISO3) crosswalk by ISO3 — documented in data/metadata/crosswalk_vdem_maddison.csv; unmatched countries stay in V-Dem with population from e_pop only if its codebook source is Maddison-compatible (to be verified in the data dictionary; otherwise excluded).
  • Exclusions: country-years with missing population; years before the first year a country's $K$ indicators are coded.
  • No link between C and A. The two panels answer the same hypotheses separately.

# 3. Variables (names are the original source names)

# 3.1 Coordination demand $D$ (strictly positive scale measures, logged)

Seshat: polity_population (persons), polity_territory (km²), population_of_the_largest_settlement (persons), settlement_hierarchy (levels). Primary $D$ = first principal component of the available logged scale variables fit on the full Seshat sample without any outcome information; secondary $D$ = log polity_population alone. Range values (value_from ≠ value_to) → geometric midpoint, with the bounds carried as a measurement-error sensitivity (§6). Modern: pop (Maddison, thousands) and e_area (V-Dem, km², 1886+) → primary $D$ = log population; secondary adds log area when available. EA: EA031/EA202 ordinal categories → midpoints of the category ranges on a log scale.

# 3.2 Coordination capacity $K$ (indicator sets are disjoint from $D$ and from $Y$)

Seshat, four blocks, each the share of indicators coded present (P or IP = 1; A or IA = 0; see §4):

  1. Administration: full_time_bureaucrat, specialized_government_building, merit_promotion, examination_system, administrative_level (levels; rescaled 0–1 by rank within the sample).
  2. Standard rules and money: formal_legal_code, judge, court, professional_lawyer, indigenous_coin, foreign_coin, paper_currency, token, precious_metal, article; measurement systems (length_, area_, volume_, weight_, time_measurement_system) enter only the latent model because they are coded for ≤ 139 polities.
  3. Communication infrastructure: courier, postal_station, general_postal_service, road, bridge, canal, port.
  4. Record-keeping / information: written_record, script, phonetic_alphabetic_writing, non_phonetic_writing, lists_tables_and_classification, calendar, practical_literature, nonwritten_record, mnemonic_device.

Primary $K$ = unweighted mean of the four block scores (each block requires ≥ 50% of its indicators coded; a polity needs ≥ 3 blocks). Alternative $K$s (reported side by side, pre-specified): (a) 2-parameter logistic IRT latent score estimated on all indicators of the four blocks; (b) first principal component of block scores; (c) block-by-block. Explicitly excluded from $K$: military (professional_soldier, professional_military_officer, military_level, Warfare sheet), religion (professional_priesthood, religious_level, Religion sheet), production infrastructure (irrigation_system, drinking_water_supply_system, market, food_storage_site, mines_or_quarry), buildings, literature genres other than practical literature. These form the rival-explanation covariates (§3.4). Modern $K$ (V-Dem, none of them a democracy index): v2clrspct (rigorous and impartial public administration), v2stcritrecadm (meritocratic appointment criteria), v2cltrnslw (transparent laws with predictable enforcement), v2stfisccap (fiscal capacity source), v2svstterr (state authority over territory), v2elembcap (EMB capacity). Primary = mean of standardized items with ≥ 4 coded; alternative = first PC. v2x_polyarchy is a covariate, never a $K$ item. EA $K$-side: EA033 levels (0–4) as the political-integration measure (ordinal, not logged).

# 3.3 Coordination pressure $P$

$P = z(\log D) - z(K)$, standardization within dataset (Seshat: over all polities with both; modern: over all country-years). $K$ is bounded and can be 0, so the $\log K$ form of the mandate is not used (documented deviation, D-004). Sensitivities: standardize within era; within macro-region; use ranks.

# 3.4 Covariates $X$ (rival explanations)

Seshat: warfare technology index (share of Warfare sheet indicators present), production infrastructure index, moralizing-religion indicator (moralizing_supernatural_punishment_and_reward), polity_degree_of_centralization, era block, macro-region, polity_utm_zone. Modern: log GDP per capita (Maddison gdppc), v2x_polyarchy, year fixed effects, country fixed effects (within specifications), e_regionpol_6C, prior-instability indicator (persistence). EA: subsistence (EA042), agriculture intensity (EA028), class differentiation (EA066), region, language family.

# 3.5 Outcomes $Y$ (coded independently of $D$ and $K$)

  • Y1 (Seshat, primary for H2-A) — crisis severity in CrisisDB "Crisis consequences": count of consequences coded P or IP among the 13 instability items {decline, collapse, downward_mobility, extermination, uprising, revolution, successful_revolution, civil_war, century_plus, fragmentation, capital, conquest, assassination, depose}, divided by the number of items coded P/IP/A/IA (SU, DIS, blank = missing, never zero). Binary version Y1b = any of {collapse, fragmentation, century_plus, conquest, civil_war} coded P/IP, defined only when all five are coded. epidemic is a covariate. Reform items (constitution, labor, unfree_labor, suffrage, public_goods, religion) are a separate exploratory outcome. Selection caveat fixed in advance: CrisisDB records exist for 150 of 626 polities and are a crisis-selected sample; the absence of a record is not "no crisis". Y1 therefore tests whether $P$ predicts how badly a crisis unfolds, conditional on a crisis being recorded, not crisis occurrence. Crisis records for the same polity (16 duplicates) are separate crisis episodes; models cluster by polity.
  • Y2 (Seshat, secondary) — polity duration $end_year - start_year$ with event = polity end; right-censored if end_year ≥ 1900 (coding boundary of the databank). Cox proportional hazards stratified by macro-region.
  • Y3 (Seshat, secondary) — discontinuous succession: for polity $i$, the successor's polity_relationship_to_preceding_entity ∉ {continuity, continuation}; missing when no successor is in the databank.
  • Y4–Y6 (modern) — onset within $(t, t+h]$, $h = 5$: Y4 civil-war onset (e_civil_war 0→1), Y5 coup (e_coups ≥ 1), Y6 regime end by non-constitutional means (v2regendtype categories to be read from the codebook and fixed in the data dictionary before estimation; documented in research/measurement.md). Primary modern outcome = composite Y456 = any of Y4–Y6 within the window. Persistence baseline uses the same outcome lagged.

# 3.6 Temporal precedence (lag)

Seshat Y1: predictors use only facts whose year_to < crisis year_from or undated whole-polity facts (unavoidable; flagged). A "strict" sensitivity uses dated-only facts (expected small N). Modern: $P_{it}$ with outcomes in $(t, t+5]$; no contemporaneous terms; the persistence baseline uses $Y_{i,t-5..t}$.


# 4. Missing data, uncertainty, coding rules

  • Seshat codes: P=1, IP=1 (flag inferred), A=0, IA=0, A~P/P~A = 0.5 (disputed; sensitivity: drop), SU, U, unknown, blank = missing. Missing is never zero. No forward-filling across polities or time (the Beheim et al. 2021 critique).
  • Numeric ranges: midpoint (geometric for logged variables) with [value_from, value_to] as bounds; is_uncertain and is_disputed rows are flagged; sensitivity re-estimates with lower and upper bounds (two extra runs) and with flagged rows dropped.
  • Dates: year_from/year_to kept as intervals; crisis start = year_from; no event is interpolated.
  • Indices: an index is missing when fewer than 50% of its indicators are coded. Latent IRT model handles item missingness by likelihood (no imputation of the latent score for polities with < 3 coded items).
  • Outcomes are never imputed.

# 5. Models (estimation commands live in src/wp35/econometrics/; seeds fixed at 20261101)

# 5.1 H1

  • Seshat: $\log D_i = a + b,K_i + \gamma' X_i + \mu_{region} + \tau_{era} + e_i$, OLS, cluster-robust SE by seshat_region; also region random effects. Report $b$ with 95% CI.
  • EA: ordinal logit of EA033 on $\log$ community size (EA031 midpoint) and covariates; spatial HAC SE; language-family clustered SE.
  • Modern: within-country regression of $\log pop$ on $K$ with year FE (association only).

# 5.2 H2 — Seshat Y1 (primary A)

Fractional logit (quasi-binomial) of Y1 on $P$ (pre-crisis) with macro-region FE and era block FE, SE clustered by seshat_region. Binary Y1b: logit. Baselines fitted with identical samples: (B0) intercept + FE; (B1) population only; (B2) $K$ only; (B3) Turchin-style single complexity PC1 (all SC indicators) ; (B4) persistence (prior crisis in the same NGA). Model comparison: leave-one-region-out log-likelihood and AUC (Y1b), 10×5-fold CV; a model "beats" a baseline if its mean OOS log-lik is higher in ≥ 80% of folds.

# 5.3 H2 — Seshat Y2/Y3 (secondary)

Cox PH of duration on $P$, $X$, stratified by macro-region, Efron ties, robust SE by seshat_region; Schoenfeld test; logistic for Y3.

# 5.4 H2 — modern panel (primary C)

$\Pr(Y_{i,t+1..t+5}=1) = \Lambda(\alpha + \beta P_{it} + \gamma' X_{it} + \mu_i + \tau_t)$. Pooled logit with region and year FE and country-clustered SE (primary, because country FE drop never-event countries), conditional (fixed-effects) logit as secondary, linear probability with two-way FE as tertiary. Cubic polynomial of time-since-last-event (Carter & Signorino 2010). Forward-chaining: train ≤ 1945 → test 1946–1975; train ≤ 1975 → test 1976–2005; train ≤ 2005 → test 2006+. Leave-one-region-out on e_regionpol_6C. Metrics: OOS log-lik, AUC, Brier, calibration slope. Negative controls: (i) outcome before $t$ regressed on $P_{t}$ with the same spec must not show a stronger association than the forward spec; (ii) placebo $P$ built from the production/religion indicators excluded from $K$.

# 5.5 H4

Linear-in-$P$ vs. hinge ($P$ and $(P-c)_+$, $c$ chosen by profile likelihood on the training fold only) vs. natural cubic spline (3 df). Decision rule in §1.

# 5.6 H5

Report $\beta_P$ per held-out macro-region and era block; a claim is retained only for blocks where the CI excludes zero in the pooled direction; otherwise the domain statement is narrowed.

# 5.7 Multiple testing

Three primary tests: H1-Seshat ($b$), H2-A ($\beta_P$ on Y1), H2-C ($\beta_P$ on Y456). Holm correction at family-wise 5%. All other estimates are labelled secondary or exploratory in every table.

# 5.8 Power

Before estimation, a simulation-based minimum detectable effect (MDE, 80% power) will be computed for H2-A with the actual $N$ and the actual distribution of $P$ (random outcome assignment, no real outcome values). Recorded in research/measurement.md. If the MDE exceeds a standardized coefficient of 0.5, the Seshat H2 test is declared underpowered a priori in the paper, whatever its result.


# 6. Robustness set (all pre-specified, all reported even when unfavorable)

  1. $D$ alternatives (population only; territory only; PC1). 2. $K$ alternatives (mean of blocks; IRT; PC1; each block).
  2. Standardization window (whole sample; within era; within macro-region). 4. Bounds of ranges (lower/upper).
  3. Drop inferred codes (IP/IA → missing). 6. Drop quasi-polities. 7. Drop polities whose crisis starts within 25 years of start_year (predictors may post-date). 8. Equinox-2020 release instead of Polaris-2026. 9. Modern: $h \in {1, 3, 10}$; component outcomes; country FE logit; drop years < 1900. 10. Oster (2019) / Cinelli–Hazlett (2020) sensitivity to unobservables for the primary coefficients.

# 7. What would make us abandon the universal framing

If H2 fails in both A and C, the paper reports the SCH as not supported as a predictor of instability and keeps only what survived (possibly H1 as an association and H3 as a SIMULATED result), with the title and abstract adjusted accordingly. If H2 holds in one panel only, the claim is restricted to that panel's domain (H5).

Files · 8f19ce36212f3d403648b32eec919c5eb93586c9
Menu

Theme