← Paying for a Meal That Had Gone Cold
PAPERS DESIGN NOTES 12 MIN READ

The experiment design, step by step

How the experiments behind "Equal Accuracy, Unequal Cost" were built, and why each choice was made.

The paper asks when a forecasting transformer gains from reading across series, and finds that at a 96-step horizon it does not. A null result is worth exactly as much as the design behind it, so this page sets out that design: the question, the four synthetic families, the controls, the statistics, the checks on the one pattern that remained, and the closed-form ceilings. The results are in the main post.

Code, data and paper on GitHub
+0.0013grand-mean CD − CI MSE, interval [−0.0023, +0.0048]
1%practical band, pre-specified; every controlled point estimate inside it
31.9×CD gradient steps per epoch at C = 84
≈ 0.3%the most any model could gain on the scored loss at h = 96

The question, and why benchmarks can't answer it

A multivariate forecaster can read each variable from its own history (channel-independent, CI) or attend across all variables at once (channel-dependent, CD). CD costs far more compute, and the question is when it earns that cost.

Benchmark dataset correlation channel count lag structure result all three move together: which one caused the result? Synthetic generator correlation ρ channels C, fixed lag γ, fixed result turn one dial per experiment: the result is attributable
On a real dataset the properties arrive bundled, so a CD win or loss cannot be traced to any one of them. Generating the data yourself lets each experiment change a single property.
Research questionWhat changes
RQ1Channels share only instantaneous correlation: they move together, but no channel's past predicts another's future. Does CD beat CI?correlation ρ and channel count C
RQ2Add real lagged coupling γ, where one channel's past drives another's future. Does CD's advantage grow with γ, and does patch size matter?coupling γ and patch size P
  • Scope: PatchTST with flattened-token CD, the generative families tested, one T4 GPU budget, horizon 96.
  • Real datasets (ETTh1, ECL) appear as context only; the synthetic families carry the evidence.

Three questions the paper keeps apart

LevelQuestionWhat the paper shows
CorrelationDo the series move together?yes, by design: ρ up to 0.9, γ up to 0.9
Incremental informationDoes another series' past improve this forecast beyond its own history, at the horizon that matters?zero at every step on the diagonal families; for followers up to 39.6% at h = 1, about 0.3% averaged over 96 steps
Decision valueDoes that improvement change a decision enough to pay for its cost?not tested; the industry extension

Dependence in the data does not by itself mean extra forecasting information. Two series can move together because of shared noise that neither can see coming, and then the other series' past tells you nothing new. The whole design exists to separate the second row of that table from the first.

Four synthetic families, each isolating one thing

Every family uses the same persistence φ = 0.8, the same five seeds {42, 123, 456, 789, 1011}, horizon 96, and z-scoring fitted on the training split only. Why 0.8, and what it costs, is worked through in the ceilings section.

AR(1) grid

correlation ρ 0.10.50.9 channels C 72184 9 cells × 3 modes × 5 seeds = 135 runs

Isolates instantaneous correlation and channel count (RQ1). The transition is diagonal, so no channel's past helps another.

Leader-follower γ-sweep

leader 0 follower 10 ⋮ 10 pairs⋮ leader 9 follower 19 isolate 20 γ, lag 1 γ, lag 1

Isolates real lagged coupling (RQ2), γ ∈ {0, 0.3, 0.6, 0.9}, C = 21. The isolate is a built-in negative control.

Patch-resolution sweep

P = 16 P = 4 a lag-1 shift sits inside one 16-step patch it can cross a patch boundary: a token-level offset P ∈ {4, 8, 16}; P = 2 trained for CI only

Isolates whether a large patch hides the lag-1 relation inside one token. Its generator differs, so only CD/CI ratios within it are compared.

Block covariance

ρ_in insidea block of 70 acrossblocks C ∈ {21, 84}, ρ_in ∈ {0.5, 0.9}

Isolates structured correlation that CD could in principle exploit, still with a diagonal transition.

The patch sweep's generator differs from the other three: iid innovations at σ = 0.1, 20,000 steps and a 70/10/20 split, against compound-symmetry innovations at ρ = 0.5, 14,400 steps and 60/20/20. Its absolute MSE is never set against the other families; only the CD/CI ratio inside the sweep is read.

The controls, and what breaks without each

A null result is convincing only if the setup could have found an effect and nothing else could explain what it found. Each control below closes one alternative explanation.

ControlWhat it doesWithout it
Paired seedsCD and CI train on the same seed's series; compare d = MSECD − MSECIa lucky or hard series looks like a model difference
DLinear baselinea linear floor in every synthetic familyno way to tell whether the transformers learned temporal structure
Isolate channelchannel 20, coupled to nothingno negative control inside the coupled data
γ = 0 consistencymust reproduce the AR(1) cell C = 21, ρ = 0.5; it matched within seed variancea bug in one generator goes unnoticed
Train-only z-scoringper-channel scaling fitted on the training splittest statistics leak into training
Best-checkpoint restorevalidation-best weights reloaded before testingCD caught past its early peak; this is the fact that rules out the selection explanation below
Matched update budgetboth modes get the same number of optimiser updatesthe objection that CD was simply trained harder stays open
The step-count confound. Memory forces CD onto small batches (batch 1 at C = 84), so it takes many more gradient steps per epoch: updates per epoch = ⌈windows / batch⌉, and at C = 84 that is 7,433 / 32 = 233 for CI against 7,433 / 1 = 7,433 for CD, a 31.9× ratio. The matched update budget below tests whether the extra steps, and not attention, drive the result.

The statistics: pairs, seeds and what the design could detect

Each point below is one paired difference, CD minus CI, for one seed in one AR(1) cell. Above zero means CI was better. Pick a seed to see why the seed is the unit of replication.

All 45 differences from results_grid.csv. The shaded strip is the 1% practical band (1% of the grid's mean CI MSE, 1.0123, so about ±0.0101). The band is drawn at the grid-wide value; each cell's own band is 1% of that cell's CI mean (0.975 to 1.064). Highlight seed 1011: it is above zero in all nine cells and the highest of the five seeds in five of them, which is why rows from the same seed are not independent.

Why the interval is clustered by seed

The same five seeds appear in all nine cells, so a seed's luck moves nine rows together. Treating the 45 rows as independent understates the uncertainty. Average each seed across cells first, then build the interval over five seed means.

An intuition. Five students each sit nine exams. You have 45 scores but only five students, and a strong student lifts all nine of their scores together. To ask how much a teaching method helps, you compare the five students, each with their nine scores averaged first. Here the seeds are the students and the cells are the exams.
Grand mean +0.0013. Naive interval [−0.0002, +0.0028]; clustered [−0.0023, +0.0048], about 2.4 times wider. Both contain zero and sit inside the band. The clustered one is the one the paper reports.
naive: 2.015 × 0.0050 / √45 = ±0.0015  (t with 44 df, SD of the 45 differences)
clustered: 2.776 × 0.0029 / √5 = ±0.0036  (t with 4 df, SD of the five seed means)

Two things widen the clustered interval: the standard error is built from five numbers instead of 45, and the multiplier comes from a t distribution with four degrees of freedom instead of 44.

Five seeds means df = 4

Seedsdf95% multiplier t
542.776
1092.262
30292.045
very many∞1.960

With few seeds the spread is estimated from little data, so the multiplier is larger and intervals are wider. That makes a tight interval at df = 4 genuinely tight.

The detection floor

pooled SD = √(mean of the 9 cell variances) = √(2.5915 × 10⁻⁵) = 0.00509
half-width = t × SD / √n = 2.776 × 0.00509 / √5 = 0.0063 MSE
as a share of the mean CI MSE: 0.0063 / 1.0123 = 0.62%
at 80% power: (2.776 + 0.941) × 0.00509 / √5 = 0.0085 MSE, 0.83%
  • A true CD advantage of 0.0063 would just push a typical cell's interval off zero: roughly a 50%-power threshold. At 80% power the minimum detectable effect is about 0.0085 MSE (0.83%), still under the 1% band; the 0.941 is the t quantile that leaves 20% in the lower tail.
  • It is a pooled, typical-cell figure: the noisiest cell (C = 84, ρ = 0.9) has SD 0.0111, so its own floor is about 0.0138.
  • The 1% band was fixed before the robustness analyses were run; the paper calls it pre-specified. It is an operational cut-off on effect size and makes no formal equivalence claim. On the grand mean a two-one-sided test would pass, since even the 95% interval sits inside the band.

The explanations tested

In the leader-follower data, CD got relatively worse as coupling rose (slope +0.0072 per unit γ, p = 0.004, point estimates inside the band, though at γ = 0.9 the interval's upper edge reaches about 1.16%). Three experiments asked why.

Was CD simply trained differently? A matched update budget

With the same number of optimiser updates, CD comes out slightly ahead in both leader-follower cells (intervals exclude zero) and ties at C = 84, ρ = 0.9 (interval spans zero). The step asymmetry does not create a CI advantage. Treat it as a sensitivity check: a short budget can stop a model before its minimum.

Where does the widening live? A cross-variate head

The main CD model shares CI's per-channel prediction head, so cross-channel information is never pooled when the forecast is made. Swapping only the head for one that attends across channel summaries removes the widening (every CD_Head interval spans zero). The widening sits in the shared head.

The withdrawn claim: was it checkpoint selection?

Instrumented reruns at γ = 0.6 showed CD peaking early (epoch 4 to 7) and degrading, while CI plateaued (epoch 16 to 20). An earlier draft said the gap was "largely a selection artefact". It could not be: the protocol already restored the best checkpoint, visible because total steps = best epoch × steps per epoch in every row. The change was decomposed instead:

Same seeds and settings, retrained: +0.0079 → −0.0019 (run set, 0.0098). Validation checked five times per epoch instead of once: −0.0019 → −0.0031 (cadence, 0.0012). Selection rule: both rules pick the same checkpoint, 0. The parts add up: 0.0079 − 0.0098 − 0.0012 = −0.0031.
  • The run-set gap is reported as unexplained. Seeds, batch sizes, steps and stopping rule were identical, which rules out configuration; code-level nondeterminism stays open.
  • Its consequence is bounded: shifting every synthetic cell by +0.77% (the original γ = 0.6 gap) leaves all but one cell inside the band.

Real data, as context

DatasetResultWhat it adds
ETTh1, C = 7, five seeds, matched budgetCI ahead by +0.0147 MSE (2.6%), interval [+0.0000, +0.0293]; the one result above the bandCI's edge is larger in low-coupling windows (+0.0450 at H = 96) than in high-coupling ones (+0.0058), the reverse of a coupling story; the mechanism stays unidentified
ECL, C = 321, one seedCD epoch 956 s against 143 s for CI, 6.7×; accuracy gap descriptive onlythe cost wall at real scale: 3,531 tokens per CD sequence

The ceilings: what any model could achieve

Because the generating process is known, the best possible forecast error can be computed for each mode, with no training at all.

  • Diagonal families (AR(1) grid, block covariance, leaders, isolate): a channel's own past is all that helps, whatever the noise correlation, so the CI and CD ceilings are identical at every horizon.
  • Followers: the CD ceiling uses the full state; the CI ceiling is the steady-state Kalman predictor that sees only the follower's own history. Only the 10 followers of 21 channels have any gap at all.
diagonal:  x̂t+h = φh xt,   error variance = 1 − φ2h;   at h = 96:  0.8192 ≈ 2.5 × 10−19
follower:  f̂t+h = φh ft + γ · h φh−1 · lt,   leader weight largest at h = −1 / ln φ ≈ 4.5

The follower line comes from unrolling its equation h steps and taking expectations at time t. The leader's weight hφh−1 is 1 at one step, 2.05 at four and five steps, 0.29 at twenty and 6 × 10−8 at 96, which is why the absolute gap in the chart peaks near h = 5. The CI ceiling is lower than this term implies, since the Kalman predictor reads part of lt back out of the follower's own past.

A Kalman filter, in plain words. You can watch only the follower, which reacts to its leader one step late, so its recent moves are a noisy echo of what the leader did. The filter is the best possible way to read the leader's state from that echo. The gap between the two curves below is what seeing the leader directly adds on top of reading its echo.
CI ceiling (own history)CD ceiling (full state)the gap: signal CD could use
Follower channel, z-scored MSE, horizon on a log scale. Values reproduce the paper's table at h = 1, 5, 10 and 96. The averaged figures are the gap averaged over all 96 forecast steps, the way the training notebooks' loss scores it (summed squared error over every step and channel, divided by the count).
  • At the h = 96 endpoint the two ceilings coincide: φ192 ≈ 2.5 × 10⁻¹⁹.
  • Averaged over the forecast the most any model could gain is about 0.3% across all channels: at γ = 0.9 the follower gap averaged over 96 steps is 0.0065, and 0.0065 × 10/21 = 0.0031 once the eleven channels with no gap are counted, 0.31% of a CI MSE close to 1. That is under the 1% band and under the 0.0063 floor. The null holds, and parity there is a weak test of the architecture, since a model that ignores the signal and one that uses it would look the same.
  • The opportunity lives at short horizons, so the informative next experiment is h ≤ 10.

Why φ = 0.8

Persistence φ controls two things at once: how much of a channel stays predictable far ahead, and how many effectively independent observations a fixed-length series contains. Raising one lowers the other, and the slider shows by how much.

0.8000
selected φφ = 0.8, the paper (dashed)

Predictable share of variance h steps ahead is φ2h. Effective sample size of an AR(1) is n / τ with τ = (1 + φ)/(1 − φ), shown for the 8,640-step training split (60% of 14,400). Burn-in residue is φ1000, the weight the initial condition keeps after 1,000 steps.
φ = 0.8:  τ = 1.8 / 0.2 = 9,   8,640 / 9 = 960 effective observations,   half-life = ln 0.5 / ln 0.8 = 3.1 steps
φ = 0.95:  τ = 1.95 / 0.05 = 39,   8,640 / 39 = 222,   half-life = 13.5 steps,   0.951000 ≈ 5 × 10−23
  • Below about 0.6 there is almost nothing to forecast: a 512-step lookback carries no information past a few steps.
  • Above about 0.95 the effective sample size collapses: 222 effective observations per channel at 0.95 against 960 at 0.8, and 16 at 0.9964. Burn-in is fine at 0.95 and only starts to bite near 0.996.
  • The only φ that keeps half the signal at h = 96 leaves about 16 effective observations. A fixed series length cannot give both, which is why the next experiment shortens the horizon instead of raising φ.

Limits, ranked, and what comes next

Ranked by how much each one could change the conclusion.

  1. The unexplained run-set shift: every CD figure comes from one run per configuration, with rerun evidence at one cell.
  2. h = 96 barely discriminates: about 0.3% available averaged over the forecast.
  3. P = 2 untested: about 33 GPU-hours per seed with fused attention.
  4. ECL is one seed, two of four horizons; descriptive only.
  5. Narrow families: one leader-follower topology, two covariance structures, φ fixed at 0.8.
  6. One CD formulation (flattened tokens) and one hardware budget.
  7. MSE only, though MAE is logged in every results file.
  8. ETTh1 test slice: the code scores a 5,900-row slice where the benchmark convention scores 2,880 rows, so its absolute MSE is not comparable with published tables.
  9. No formal equivalence test and no multiplicity correction.
  10. No independent retraining.

Next, in order

  1. A short-horizon comparison, h ≤ 10, with the band restated against the ceilings.
  2. P = 2 at that short horizon.
  3. Five seeds on ECL.
  4. A variate-token CD (iTransformer-style), which removes the quadratic cost.
  5. Diebold-Mariano tests with a HAC variance on the real-data windows.

What would change my mind

At h = 5 the ceiling gap is 9 to 15 times the band. If CD still tied CI there, the architecture would be failing to use signal that exists. If it captured the gap, the h = 96 null is a horizon effect, which is what the theory predicts. Either answer is worth more than another run at 96 steps.

Sources: Mendelowitz, A. (2026), Equal Accuracy, Unequal Cost: Channel Dependence in PatchTST under Controlled Coupling, TMLR; results/results_grid.csv, notebooks/train_leader_follower.ipynb and derive_theoretical_bounds.py in the cd-ci-patchtst repository, tag v1.0-tmlr.