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.