# PHASE 7 — Inference, calibration, subgroups, falsification, economics (2026-11-03) ## Runs (M3U96b, `rest_chain`, 23:06 → ~02:50 ET; all exit 0) | Run | Config / flags | Origins | Wall | |---|---|---|---| | Held-out 2024 | `main.yaml --heldout` (baselines refit on the 60 instruments' own training histories; neural checkpoints from the main study, zero-shot) | 250 322 | ≈ 15 min | | Ablations 2024 | `ablations.yaml` (15 Small variants × 4 000 steps + reference + 2 seeds + copula) | 986 468 | ≈ 6 h 10 | | Final 2025 pooled | `final.yaml --eval-split final --models-from results/metrics/main` | 1 008 425 | ≈ 1 h 25 | | Final 2025 held-out | `final.yaml --eval-split final --heldout --models-from …` | 254 334 | ≈ 25 min | Post-processing on the laptop: `scripts/pairwise.py` (DM-HAC, day-cluster bootstrap, Holm/BH, subgroups, stress-day calibration) for `main/test`, `main/test_heldout`, `final/final`, `final/final_heldout`, `ablations/test`; `scripts/economic.py` on the node (H5); `scripts/evaluate.py`, `make_figures.py`, `make_static_tables.py`. ## Hypothesis verdicts (relative CRPS of the cumulative return; Holm-adjusted DM p-values) | Hypothesis | Evidence | Verdict | |---|---|---| | H1 multi-resolution > 1m-only (equal params) | 2024 dev: −0.04 % (H5) … −0.10 % (H60), t −4.5 to −5.3; 4k-step ablation: −0.12 … −0.16 %; **2025 final: +0.01 … +0.03 %, p ≥ 0.36; 2025 held-out: p = 1** | statistically detectable in sample, economically nil, absent out of sample → **rejected in substance** | | H2 transfer to unseen instruments | held-out vs random walk −4.1 … −4.3 % (pooled −4.05 … −4.27 %); beats GARCH-t (−0.9 … −1.6 %), EWMA, TCN, MLP; ties HAR/ridge/LightGBM from 30 min (p = 1); 2025 held-out identical | **supported** (no transfer penalty; parity with refitted HAR beyond 15 min) | | H3 regime conditioning improves stress calibration | no-regime vs stats-regime: +0.02 … +0.03 % CRPS, p > 0.3 at 30/60; stress-day coverage identical (0.57/0.85/0.97 vs 0.57/0.85/0.97) | **rejected** (learned codebook: −0.03 … −0.15 %, small) | | H4 coherent paths > independent marginals | copula NLL → 0 (independence); energy −0.003 %, variogram −0.002 %, MDD CRPS −0.01 %, RV CRPS +0.10 %, all CIs contain 0 | **rejected** | | H5 economic content | median–realised correlation 0.003–0.025; net return at 1 bp cost 0.0 bp [−1.7, +1.8]; traded share < 4 % above 2.5 bp | **rejected** | Supplementary findings: model size irrelevant (Base vs Small p ≥ 0.1 everywhere); neural best at H = 5 (−1.2 … −1.9 % vs HAR), HAR/ridge/LightGBM best at H ≥ 15 (+0.2 … +0.7 % against MRPT-S, 2024 and 2025); time-only inputs recover ≈ 90 % of the gain over the random walk; shuffled minutes cost +0.13 … +0.21 %; ticker identity hurts (+0.05 … +0.31 %); Gaussian head worse than Student-t by +0.20 … +0.32 % (re-scored after a sampling fix for ν = ∞). ## Calibration Neural + GARCH/EWMA: nominal at 95 %, over-dispersed centre (50 % coverage 0.55–0.59). HAR/ridge/LightGBM: nominal from 15 min, under-dispersed at 5 min (50 % coverage 0.37). 2025 stress days: HAR 0.46/0.77/0.95 vs MRPT-S 0.55/0.84/0.95. ## Multiplicity and dependence All intervals are day-cluster bootstraps (251–252 clusters per year); DM lags = overlap × instruments (240 … 960); Holm and BH columns in every `pairwise_*.csv`. Overlapping origins are never counted as independent. ## Artifacts `results/metrics/{main,final,ablations}/pairwise_*.csv`, `subgroups_*.csv`, `stress_calibration_*.csv`, `economic_test.csv`, `path_scores_mrpt_small_copula_test.json`, leaderboards and comparisons per split; `paper/tables/*.tex` (53), `paper/figures/*` (27), `paper/results_macros.tex` (3 468 macros). Gates: leakage (tests), numerical (tests + copula null reproduced on synthetic data), provenance (dataset versions 17 375 / 5 162 in every run_meta) — PASS.