Skip to content

research(conversion): test which pairing window to train on - #51

Merged
Stanback merged 2 commits into
mainfrom
research/pairing-window
Oct 24, 2026
Merged

Stanback merged 2 commits into
mainfrom
research/pairing-window

Conversation

@Stanback

Copy link
Copy Markdown
Owner

The report's existing window table scores the 30-day model on wider test pairs, so it can't say which window to train on. This PR adds that experiment.

window_experiment.py fits one Equivalence model per training window (14, 30, 60 and 90 days). Each model uses the same partitions, noise estimates and shrinkage. All four are scored on the same 14-day test pairs, plus the 30-day test pairs as a secondary view. The script reuses the shipped functions rather than copying them, and stops if the snapshot or input hash differs from the shipped receipt. Its 30-day model reproduces the shipped MAE exactly: 2.5095 on 14-day pairs and 2.7711 on 30-day pairs.

Result: keep 30 days.

  • 60 days is worse on both test sets (+0.060 s [+0.046, +0.073] on the 14-day test).
  • 90 days ties overall but is worse on SCM-involving pairs (+0.067 s [+0.014, +0.121]). Widening clears only 3 of 28 low-evidence SCM cells, so widening just the thin SCM cells is ruled out.
  • 14 days ties: the sign flips between test sets, and it trains on 35% fewer swimmers with 43 low-evidence cells instead of 30.

The receipt window-experiment-01.json holds aggregates only. REPORT §7.8 gains a generated table (render_report_tables.py --check passes) and a short paragraph that also states the limits: the intervals aren't adjusted for multiple comparisons, and the seasonal swim-order hypothesis isn't established. The shipped model, snapshot and evaluation receipt are unchanged.

🤖 Generated with Claude Code

Stanback and others added 2 commits October 24, 2026 14:41
… training window

Fits the equivalence model and flat multiplier on 14/30/60/90-day training
pairs with partitions, repeat-swim noise, shrinkage and the ratio screen held
as shipped, and scores every fit on one fixed 14-day test set (30-day as a
secondary view) with swimmer-clustered bootstrap deltas vs 30 days, the
independent-swim decile bias, and a seasonal SCY/LCM order check.
Aggregate-only receipt in window-experiment-01.json.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Render the window experiment's receipt as a REPORT table under 7.8: one model per
training window, all scored on the same 14-day test pairs. Thirty days stays.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@Stanback
Stanback merged commit e43e3d9 into main Oct 24, 2026
13 checks passed
@Stanback
Stanback deleted the research/pairing-window branch October 24, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant