EXPERIMENTS.md · lines 1085–1145E24 — The short-range-order correction was regressed on the wrong variable
Date 2026-09-12 · Question The calibrated fast path's residual sat at 3-5
meV/atom depending on the draw. Is that Monte Carlo noise, too little calibration data,
the wrong functional form, or the wrong variable? · Provenance
forager/thermo.py, scripts/build_ce.py, …/{cal_study,sigma_model,fresh_holdout}.py
Ruling out the easy explanations. Repeating the reference integration on the same
composition with four Monte Carlo seeds gives a spread of 0.34 meV/atom — the
reference is precise, and the residual is not noise. Quadrupling the calibration set
(20 → 80 compositions) moves the residual only 5.56 → 4.56. A quadratic fit is worse
out of sample than a linear one at every size, so the functional form is not the limit
either. What is left is the variable.
The variable. Ideal entropy counts how many species are present, not which. Over 20
calibration compositions the measured lowering spanned -4 to -17 meV/atom and ideal
entropy tracked it well enough; over 40, spanning -4 to -32, the correlation
collapses to -0.21. The earlier agreement was an artefact of a narrow range.
The high-temperature expansion supplies the right variable. Writing the canonical
average as a cumulant expansion in beta,
<E>_beta = <E>_0 - beta * Var(E_total) + O(beta^2)
so per atom, for a cell of N sites, dE = -(N / k_B T) * sigma^2, where sigma is the
scatter of the energy over random occupancies at that composition. The alloys that
order most are the ones whose arrangements differ most in energy — and sigma is
already computed by the fast path, so the better correction costs nothing.
With no fitted parameters at all it predicts -31.8 to -3.6 meV/atom against a
measured -32.0 to -4.2, correlation +0.877 (against -0.213 for ideal entropy), bias
+2.74 and scatter 3.27 meV/atom. The residual bias is the first-order truncation; a
fitted slope and offset absorb it. The entropy ratio follows the same variable
(+0.829 against -0.131).
Result, calibrated on 40 compositions at 1500 K with 64 occupancy samples, tested on
15 compositions drawn fresh after the model was chosen:
RMSE 1.30 meV/atom, against a cluster expansion whose own cross-validation error is 5.67
and a potential 6.61 from DFT. 90 compositions/s at 64 samples, 179 at 32 (where the
MAE is 1.48 — the samples buy statistics on sigma, which is now load-bearing).
Uncertainty. Predictions carry a sigma from a 50-member bootstrap ensemble of the
cluster expansion, the calibration residuals, and the sampling error on the mean. It is
unbiased (mean z +0.06) and conservative (sd z 0.48; 15/15 inside 2 sigma). Conservative
because the energy and entropy corrections share a basis, so their errors partly cancel
in the difference that forms F. Only 0.3-1.2 meV/atom of the ~2.7 total varies with
composition — the ensemble part. That is the only part Bayesian optimisation can
explore on, and it is presently swamped by the near-constant calibration floor. Cutting
that floor is the single highest-value improvement to this surrogate.
Caveats. Calibrated at one temperature and one cell size. Sigma is estimated from a
finite sample, so the correction does not transfer between sample counts — the code
refuses rather than silently rescaling. The cumulant argument is a high-temperature
expansion; at low enough temperature it must fail, and 1500 K has not been stress-tested
against, say, 800 K.