SPB Git

spb/wp41_uqo

Public
2.6 KB

# PHASE 6 — Joint paths (Stage B) — 2026-11-03

# What was run (configs/ablations.yaml, model mrpt_small_copula, M3U96b)

Stage A: MRPT-S with the Student-t head, 4 000 steps (same budget and seed as the ablation reference mrpt_small_b4k), best validation NLL −6.4509. Stage B: low-rank (k = 4) + diagonal Gaussian copula head over the 60 future minutes, trained for 600 steps on the copula log-likelihood of the PITs with the marginals frozen (64 s); best validation copula NLL −2.5e-5 per observed dimension, i.e. indistinguishable from independence (the likelihood at R = I is exactly 0). Prediction on the 986 468 development-test origins with 200 correlated draws (joint) and with 200 independent draws of the same marginals (indep); path scores computed per origin and bootstrapped by trading day (results/metrics/ablations/path_scores_mrpt_small_copula_test.json).

# Results (H4)

Score (per origin, 60-minute paths) Joint (copula) Independent Joint − independent (95 % CI)
Energy score 3.4903e-3 3.4904e-3 −9.2e-8 [−2.3e-7, +5.0e-8] (−0.003 %)
Variogram score (p = 0.5) 1.51132e-4 1.51136e-4 −3.8e-9 [−1.0e-8, +2.2e-9] (−0.002 %)
CRPS of maximum drawdown 1.4632e-3 1.4633e-3 −1.8e-7 [−6.2e-7, +2.8e-7] (−0.01 %)
CRPS of realised variance 1.1881e-5 1.1869e-5 +1.2e-8 [−2.8e-9, +3.0e-8] (+0.10 %)
Cumulative-return CRPS at H = 60: joint 0.4194, independent 0.4191 (scaled), i.e. no gain either.

H4 is rejected: once the Student-t marginals are conditioned on the 390-bar history, the probability-integral transforms of consecutive future minutes are essentially uncorrelated, the learned factor loadings stay near zero, and coherent sampling changes no path score by more than a hundredth of a percent. Diffusion decoders were therefore not attempted (the brief asked for them only if a dependence-aware decoder demonstrably helped).

# Validation of the machinery (so that the null is not an implementation artifact)

  • tests/numerical/test_copula.py: sampling reproduces the marginals; the sampled correlation matches the implied correlation under strong loadings; the copula NLL is minimised at independence for independent data; PIT round trip.
  • tests/numerical/test_scores.py::test_energy_score_prefers_true_dependence: the energy score does reward correct dependence when it exists.
  • The synthetic smoke run (independent t returns by construction) also learned ≈ 0 correlation, as it should.

# Go / no-go

Stage B remains in the package as a documented null; the paper reports it in the ablation section.

Files · main
Menu

Theme