assembly-economics/research/ModelMatching.md
tegwick 0ccf4f7cf7 ASSEMBLY-WP-0017-T04 passed: flips judged on anchor weights (6/6 switches in 0.5 y, 0 false flips); reliance on investment documented; T06 AI-specific investment series
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 14913@bnt-lap001
Assistant-Session: add7ef69-b901-4756-9a67-34cf1125d96f
2026-10-13 22:07:26 +02:00

8.8 KiB
Raw Blame History

Model matching and regime flipping

Status: v0.3 (2026-10-13), ASSEMBLY-WP-0012 and WP-0017. The IMM filter passes its synthetic acceptance test (§ 4.2) under two caveats: a perfect model, and an investment indicator that the real data provide only roughly. Measured flips may be declared only after an AI-specific investment series is in place (WP-0017-T06).

Code: simulations/gadm02/matching.py. Data: observed_series.json. Results: results/matching.md (observed), results/matching_synthetic.md (synthetic test).

1. Candidates and fit criterion (T01)

Candidates: band anchor B1–B4 × legitimacy loop off/on, each started from the jurisdiction's calibrated state (calibrate_data.start_state). B1 stays in the set with its misfit recorded, so a return to B1-like growth would be visible.

For each candidate, the adoption indicator is taken as proportional to K_Ω. Two values are fitted: a time offset t0 and a scale s, with log y = log s + log K_Ω(t0 + τ) + ε and ε ~ N(0, σ) (σ per series: BTOS 0.03, Eurostat 0.05). The calibrated K_Ω level range at the end of the window adds a Gaussian level term. All candidates fit the same number of values, so AIC weights reduce to likelihood weights.

The sentiment slope (Pew 2021 → 2026) is not scored yet: the points precede the model start (checkpoint 0). It is switched on once there are sentiment points after checkpoint 0.

2. Results on observed data (T02, T04)

Jurisdiction Data Anchor weights Loop weights Best
US BTOS, 23 biweekly points 2025–2026 B1 0.00 · B2 0.38 · B3 0.40 · B4 0.21 off 0.52 · on 0.48 B3 / loop off (0.23)
EU Eurostat 2023–2025 B1 0.00 · B2 0.03 · B3 0.96 · B4 0.01 off 0.48 · on 0.52 B3 / loop on (0.50)
DE Eurostat 2023–2025 B1 0.00 · B2 0.44 · B3 0.56 · B4 0.00 off 0.49 · on 0.51 B3 / loop on (0.29)

Weights after the BR-009 fix (sentiment anchored at its measured level, WP-0017-T01). Before the fix: US B3 0.44 / B2 0.38 with loop off 1.00; EU B3 0.62; DE B2 0.73.

Readings:

  1. The data rule out B1 everywhere, and B4 for the EU and DE. The present is B2–B3, consistent with the calibration (models/Calibration.md § 3).
  2. The adoption data cannot yet tell the loop on from off. Before the BR-009 fix, every US loop-on candidate failed. The neutral reference made the measured low sentiment (Σ 0.285) brake adoption from the first day. With sentiment anchored at its measured level, today's level is part of the fitted speed, and only changes in sentiment act. The loop weights are then about 0.5 everywhere. The loop becomes identifiable with sentiment observations after checkpoint 0. sig_adopt stays at 1 and is not yet identified.
  3. No regime is established yet. No candidate reaches weight 0.75. Predictions v1 (P-2026-001 … 004) assume growth alignment between B2 and B3, which the matched weights bracket. No predictions v2 are needed (T04).

3. Flipping events (T03)

A flipping event is a change of the regime a jurisdiction operates under, detected when:

  1. the best-weighted candidate changes, and
  2. the new best holds weight ≥ 0.75 at two consecutive evaluations.

Before a first regime is established (weight ≥ 0.75), changes are not flips.

Measured flips come from the regime filter on observed data. Every quarter, each regime's dynamics run forward from the current state estimate over the last quarter, the weights are updated with a switching prior (0.02 per quarter), and the estimate advances with the best regime. Simulated flips are regime crossings inside a model run, for example the B4 boom-bust of BR-005. Flips are recorded in research/FlipRegister.md.

4. Synthetic test (T06): not yet reliable

Truth is simulated from a known candidate. In the switch cases it changes regime at t = 4. It is observed biweekly with 3 % log-noise, with level evidence as wide as the real US target. Three seeds per case (results/matching_synthetic.md).

Indicators Correct regime at start False flips (no-switch truth) Switches detected
adoption only 3 of 6 3 of 6 0 of 6
adoption + annual sentiment 3 of 6 3 of 6 2 of 6 (delays 0.5 y and 3.25 y)

The design went through three stages:

  1. Free re-fitting of t0 and s per window: any candidate matches any segment.
  2. Alignment fixed after the first window: still path-based, so a regime change starting now is not represented.
  3. A forward filter from the current state, with evidence accumulated across quarters.

Each stage reduced false flips. None of them made detection reliable.

Why: with adoption alone, neighbouring anchors (B2/B3/B4) differ by less than measurement noise over a quarter. The loop switch leaves almost no trace in adoption. In sentiment it is confounded by BR-009: the sentiment equation reverts toward neutral from the low measured level.

Requirements before flips may be declared (ASSEMBLY-WP-0017):

  • more discriminating indicators: investment (L5) for self-enhancement, sentiment at least twice a year for the loop, and concentration channels (CB1) for domination dynamics;
  • per-regime state tracking (one state per regime, not one shared estimate);
  • the sentiment equation fixed (BR-009);
  • acceptance criteria: at least 5 of 6 regimes correct at the start, no false flips in 6 no-switch runs, and at least 4 of 6 switches detected within 1.5 years.

4.1 IMM filter with several indicators (WP-0017-T02/T03)

matching.py --imm (results/matching_imm.md):

  • Filter: an interacting-multiple-model filter. Each regime keeps its own state, and before each quarter the regime states are mixed by the switching probabilities (0.10 per quarter). Each regime then runs forward, and the weights update with the likelihood of all indicators in the quarter.
  • Indicators: adoption (biweekly, log sd 0.03), gross organism investment (quarterly, log sd 0.05), discovery channel Pd (monthly, sd 0.01) and sentiment (twice a year, sd 0.02).
  • Sentiment: anchored (BR-009 fix).
Case Result
anchor correct at the first evaluation (no-switch truth) 6 of 6
false flips (no-switch truth) 0 of 6
acceleration B2 → B4 detected 3 of 3, delay 1.0–1.5 years
slowdown B3 → B2 right direction 3 of 3, but delay 2.5–3.75 years (outside 1.5)
loop switch off → on 0 of 3

Acceptance (anchor switches ≥ 4 of 6 within 1.5 years): not passed (3 of 6).

Readings:

  1. Accelerations are visible fast. Slowdowns are not. After a slowdown, the paths diverge slowly from a shared state. For the real data: telling B2 from B3 in the US (P-2026-001) will take roughly 2.5–4 years of observations, not one.
  2. The loop state is not identifiable while sentiment is flat. With sentiment anchored, switching the loop on changes nothing visible until perceived benefit moves. The loop is a conditional regime: it can be matched only after a shock to perceived benefit.
  3. More indicators remove false flips; they do not speed up slowdown detection. With adoption alone the IMM filter had 3 of 6 false flips. With all four indicators it had none.

Observed series for the real filter: US adoption (BTOS), US investment (L5, quarterly; operator rough), US discovery channel (StatCounter, monthly), EU and DE adoption (annual). Sentiment points after checkpoint 0 do not exist yet.

4.2 Flips judged on anchors: acceptance passed (WP-0017-T04)

The slow slowdown detection in § 4.1 came from the flip rule, not from the evidence. Investment halves immediately when B3 switches to B2 (0.090 → 0.044), but the new anchor's weight split between B2/loop-off and B2/loop-on, which are indistinguishable while sentiment is flat. Neither reached 0.75. The rule now judges anchor flips on anchor weights (summed over the loop state) and loop flips on loop weights. False flips count both.

Indicators Anchor correct at start False flips Anchor switches within 1.5 y Delays
adoption + investment + Pd + sentiment 6 of 6 0 of 6 6 of 6 0.5 y each (two quarters, the minimum)
adoption + Pd + sentiment (no investment) — 5 of 6 5 of 6 0.5–3.0 y

Acceptance passed with all four indicators (results/matching_imm.md).

Caveats:

  1. Perfect model. Truth and candidates share the model structure. Real data contain misspecification, so real performance is worse.
  2. The investment indicator carries the result. Without it, false flips rise to 5 of 6. The real investment series (L5) covers all information-processing equipment, not AI only. Before measured flips may be declared, an AI-specific investment series is needed (WP-0017-T06).
  3. The loop state stays undetectable while sentiment is flat. Loop flips are therefore not declared from the filter at all until a sentiment shock gives evidence.