Experiments / expD_leadlag_scan
expD_leadlag_scan
Lead-lag scan: lagged cross-correlations and Granger, separating timestamp artifacts
View benchmark implementation (benchmark.py) →
Figures
Generated server-side from the latest committed results.json — never hand-typed.
Hypothesis
Hypothesis — expD_leadlag_scan#
Pre-specified 2026-08-12 before the scan ran. Alignment primitives (interval-fresh masks, both-fresh de-artifacting) passed the §8.1 gate first — the gate caught an end-freshness-only mask bug (Epps attenuation) before real data.
Hypothesis
Tests H07/H08 (scan half) and previews H09/H11. Expectations:
(i) raw LOCF joins will show SPY "leading" everything, in proportion to
staleness (T3); (ii) on both-fresh subsamples, liquid and sector-ETF
pairs will show NO lead-lag at ±1..3 min in 2014-2015 (H08
expected-negative); (iii) 2006-2007 fresh pairs MAY retain a small lead
(pre-decay regime, Chordia et al. 2005); (iv) ES→SPY: any 1min-visible
lead is expected to be tiny or absent, and must be invariant to the three
futures splice variants; (v) SPX→SPY: the raw lead persists even
both-fresh (index prints are CONTENT-stale though print-fresh) — the H11
artifact case.
Falsification criterion
(ii) falsified if any liquid/sector both-fresh pair survives FDR(5%) at
|lag| ∈ 1..3 in 2014-2015. (iv) falsified if the ES→SPY fresh lead
changes sign/significance across splice variants (that would mean the
measurement is splice-dominated, not economic).
Artifact null(s)
T3 non-synchronicity: measured DIRECTLY as artifact share =
raw_xcorr[+1] − fresh_xcorr[+1] per pair. Day-block bootstrap null
(resampled days, n=200, seed=42) for fresh xcorr[±1] vs 0.
Method (grid pre-declared)
Pairs vs SPY: 11 liquid (AAPL MSFT NVDA AMZN GOOGL META TSLA JPM XOM UNH
QQQ), 9 sector ETFs (XLF XLE XLK XLV XLI XLY XLP XLU XLB), 10 random
(first 10, sorted, of the seed-42 random-30). Plus ES→SPY (all three
splice variants) and SPX→SPY. Windows: W1 2006-01-01→2008-01-01,
W2 2014-01-01→2016-01-01 (ES/SPX: W2 only — history starts 2008).
1min RTH grids; raw-LOCF vs both-fresh (interval-fresh) treatments;
lags ±3; min 200 covered days and 10k fresh pairs per cell.
Correction: BH-FDR over all fresh xcorr[+1] and xcorr[-1] tests jointly.
Cell count ≤ (30×2 + 4 + 1) ≈ 65 pairs-windows × 2 lags.
Result
Run 20260812T070742Z (198 requests, 8.4M rows, 49 pair-cells, 98 tests).
2006-2007: broad both-fresh leads survive FDR — SPY leads every sector ETF
by +0.07..+0.148 at +1min and liquid names by +0.01..+0.03. 2014-2015:
collapse — liquid/sector fresh leads shrink to [-0.020, +0.046]; a handful
remain FDR-significant at tiny magnitudes (XLF +0.028, JPM +0.046,
MSFT -0.015 NEGATIVE); sparse names keep larger fresh leads (BKE +0.075,
HTD +0.073). ES->SPY: fresh corr(SPY_{t-1}, ES_t) = -0.032, FDR, and
IDENTICAL across all three splice variants (-0.0323 each). SPX->SPY: SPY
leads SPX +0.132 both-fresh with artifact share ~0 (SPX prints every
minute, fresh_frac 0.996) — synchronization does NOT remove it. Median
raw-vs-fresh artifact share ~0 for liquid/sector; for ultra-stale names
the raw LOCF join DILUTES the lead (HTD raw +0.048 vs fresh +0.073).
Interpretation
(Level 0.) Clause (iii) held: 2006-2007 retained real minute-scale
diffusion — and its 2014-2015 collapse is the cleanest decay measurement
of the project so far (XLK +0.148 -> +0.019). Clause (ii) FALSIFIED as
pre-registered: several liquid/sector pairs survive FDR in 2014-2015 —
statistically nonzero but economically tiny residual structure; to expF.
Clause (iv) held: the ES->SPY effect is splice-invariant, a genuine
basis-reversion-like microstructure candidate. Clause (v) held: the SPX
"lead" is content-staleness, not print-staleness — synchronizing on print
times cannot fix a computed index (H11 candidate confirmed in scan form).
New T3 nuance: LOCF joins INFLATE leads for mid-stale names (expB) but
DILUTE them for ultra-stale names (zero-return mass) — the artifact is
non-monotone in staleness.
Next experiment
expE calendar scan (pre-counted budget); then expF correction battery.Analysis
Analysis — expD_leadlag_scan#
Run: results/expD_leadlag_scan/20260812T070742Z/results.json (protocol
pre-specified; alignment primitives §8.1-gated — the gate caught an
interval-freshness bug before real data). All conclusions Level 0.
1. The decay measurement (H07/H08 scan half)#
Both-fresh leads at +1min, 2006-2007 → 2014-2015:
| Pair family | 2006-2007 | 2014-2015 |
|---|---|---|
| SPY → sector ETFs | +0.07 .. +0.148 (all FDR) | −0.02 .. +0.028 |
| SPY → mega-caps | +0.01 .. +0.03 (mostly FDR) | −0.015 .. +0.046 |
| SPY → sparse names | +0.09 .. +0.12 | +0.06 .. +0.075 (still FDR) |
Minute-scale market→component diffusion was REAL and large in 2006-2007 on synchronized samples, and collapsed by 2014-2015 — direct, open-data confirmation of the Chordia–Roll–Subrahmanyam convergence story at the 1min floor. The residual 2014-2015 structure is statistically detectable (huge n) but an order of magnitude smaller; several cells survive FDR, so the pre-registered expected-negative clause for H08 is formally falsified — recorded as such and handed to expF (costs will likely be decisive).
2. ES ↔ SPY (H09 preview)#
corr(SPY_{t−1}, ES_t) = −0.032 both-fresh, FDR-significant, and identical to 4 decimals across all three continuous-futures splice variants — the built-in robustness check held. Sign and size are consistent with minute-scale basis reversion rather than one-way price discovery (the +1 ES-leads direction is ≈0). A genuine structural candidate for expF/candidate work; economically tiny.
3. SPX → SPY: content staleness ≠ print staleness (H11 confirmed at scan level)#
SPY leads SPX by +0.132 on the both-fresh subsample, with artifact share ≈ 0 — SPX "prints" every minute (fresh_frac 0.996), so synchronizing on print times removes nothing: the staleness lives INSIDE the index computation (Fisher 1966, measured live). Confirms candidate 03's design: the correction must model constituent staleness, not print gaps.
4. A T3 refinement for the taxonomy#
expB showed LOCF joins inflate leads for mid-stale names (+0.047). expD adds the other arm: for ultra-stale names the LOCF zero-return mass dilutes the measured lead (HTD: raw +0.048 vs fresh +0.073). The non-synchronicity artifact is non-monotone in staleness — naive joins can hide as well as manufacture lead-lag. Added to T3.
5. Verdicts#
Clause (ii) falsified (tiny FDR residuals remain in 2014-2015); clauses (iii), (iv), (v) held. Hand-off to expF: the 2014-2015 FDR survivors, the ES→SPY basis effect, and the decay curve. expE (calendar) is next; its budget is pre-counted in research_gaps.md.
README
expD_leadlag_scan#
Lead-lag scan: lagged cross-correlations and Granger, separating timestamp artifacts
Status: completed 2026-08-12 — decay 2006-07→2014-15 measured on synchronized pairs; ES↔SPY splice-invariant basis effect; SPX lead = content staleness (H11 confirmed at scan level).
Result runs
- 20260812T064047Z / results.json 44.5 KiB