Skip to content

Q13b: the pre-registered lead did not replicate - #10

Merged
jadoon200 merged 2 commits into
mainfrom
feat/capacity-control
Aug 9, 2026
Merged

Q13b: the pre-registered lead did not replicate#10
jadoon200 merged 2 commits into
mainfrom
feat/capacity-control

Conversation

@jadoon200

Copy link
Copy Markdown
Owner

The Q13 replacement measure was pre-registered in the previous commit — hypothesis, horizon,
sample size, decision rule and full analysis script, committed and pushed before the
confirmatory data existed
. This is the result.

It did not replicate

exploratory (08-08) confirmatory (08-09)
low-frequency power, AUC @ 12 h 0.700 0.526
p 0.027 (one of six tests) 0.359 (one-sided, pre-registered)
n measurable 34 69

80 workloads drawn fresh under a new seed and explicitly disjoint from the 43 that produced
the lead. The design had ~0.9 power against a true AUC of 0.700, so this is not a near miss
on an underpowered test.

0.700 was the winner's curse — the largest of six AUCs on 34 workloads, and the largest
of six noisy estimates is biased upward by construction. Pre-registration caught it rather
than hindsight, which is exactly what it was written first to do.

The secondary result I am not acting on

On the same fresh cohort, daily autocorrelation scored 0.601 and spectral predictability
0.499.

Autocorrelation coming out highest is precisely the invitation to take a second bite: declare
it vindicated, rebuild around it, quote 0.601. The pre-registration forbids that in advance.
These carry no alpha, and at n = 69 they sit inside the noise band the earlier permutation
null established (95% ceiling ≈ 0.68). No claim is made from them.

What this closes

  • The low-frequency measure is refuted, not merely unconfirmed — one well-powered
    pre-registered chance, not taken.
  • Spectral entropy is refuted twice: it lost the exploratory race (0.396 / 0.456) and
    scored 0.499 — chance — on fresh data.
  • No training-free measure tested predicts whether forecasting pays on individual
    serverless workloads.
    Three tried, three failed.

The diagnostic stays exactly where Q13 left it: valid on fleet-aggregate demand at 27 of 28
cells, and scoped out of everything else on the page a visitor reads. That scope now rests on
two independent failures to extend it rather than one.

A recommendation of ours, retracted

Two days ago, after the literature review, this project recommended replacing daily
autocorrelation with spectral entropy and called it "the clearest improvement available". The
reasoning was sound in the abstract; on this problem it was wrong, and now measured twice to
be wrong. The README said it, so the README retracts it.

The shipped Q13 finding carries the null result too, so the live site states it.

Gate

ruff clean; mypy strict clean; 201 tests — all verified by exit code.

The low-frequency power lead reached AUC 0.700 at a twelve-hour commitment with
permutation p = 0.027, which does not survive Bonferroni across the six tests that
produced it. A lead becomes a finding by surviving one pre-specified test on data
that did not generate it, so this commits the hypothesis and the complete analysis
before the confirmatory data exists. The commit order is the only evidence that
claim is worth anything.

One measure, one horizon, one test. Twelve hours only — testing both windows would
restore the multiplicity problem the lead already failed. Alpha 0.05, one-sided
because the hypothesis predicts a direction, 20,000 permutations. Target n = 80,
chosen for roughly 0.9 power against the AUC the exploratory run suggested; a null
at this size means the effect is smaller than we thought, not that it is absent.

The cohort is drawn fresh under a new seed and explicitly excludes the 43
workloads the lead was found on, regenerated deterministically rather than
hard-coded. Sampling is uniform with no stratification: the exploratory run
oversampled the borderline band, and stratifying on the predictor under test would
bias the statistic being tested.

The decision rule is written down with no third option. No re-slicing by band, and
no falling back to the six-hour window if twelve disappoints. Daily autocorrelation
and spectral predictability are computed on the same cohort as descriptive
comparisons that carry no alpha and cannot confirm anything.
Ran the test pre-registered in the previous commit. The horizon-relative spectral
measure fell from AUC 0.700 to 0.526 on 80 fresh workloads disjoint from the ones
that produced it, one-sided p = 0.36 against a design with roughly 0.9 power.
Not a near miss on an underpowered test — 0.526 is what no signal looks like.

The honest reading is the boring one. 0.700 was the largest of six AUCs computed
on 34 workloads, and the largest of six noisy estimates is biased upward by
construction. Pre-registration is what caught that rather than hindsight, which is
the entire reason it was written first.

Daily autocorrelation scored 0.601 on the same fresh cohort and spectral
predictability 0.499. Autocorrelation coming out highest is exactly the invitation
to take a second bite, declare it vindicated and quote the number. The
pre-registration forbids that in advance: these are descriptive, carry no alpha,
and at n=69 sit inside the noise band the earlier permutation null established.
No claim is made from them and the shipped diagnostic does not change.

Three training-free measures have now been tried on individual serverless
workloads and all three have failed, so the diagnostic stays scoped to fleet
aggregates rather than being patched. That scope now rests on two independent
failures to extend it.

Withdraws this project's own recommendation, made two days ago after the
literature review, that spectral entropy was the clearest improvement available.
The reasoning was sound in the abstract and wrong on this problem, measured twice.
The README said it, so the README retracts it.
@jadoon200
jadoon200 merged commit f938f4a into main Aug 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant