The sandwich
Run any model in laplace's coordinates, map back exactly. Everyone improves.
pip
install prophet-laplace.
laplace defines a causal bijection on paths: the Rosenblatt transform of each observation under the predictive issued for it. Feed the resulting z stream to any model, map its output back through the exact Jacobian, and the model operates on a stationarised, unit-scale stream instead of raw data. No retraining, no approximation in the accounting. The skill has the recipe; prophet-laplace is the drop-in package for Prophet.
Forecasters, one-step log-likelihood vs plain laplace
| model | universe | raw | sandwiched |
|---|---|---|---|
| ETS | FRED-30 | −2.03 | +0.01 |
| AutoARIMA | FRED-30 | −2.03 | +0.05 |
| GARCH(1,1) | FRED-30 | −1.94 | +0.03 |
| Prophet | FRED-30 | −2.04 | +0.03 |
| Prophet | 921 series, pre-registered | −0.76 (−4.6 family-weighted) | −0.02 |
| TabFM (regressor) | 226 series | −0.75 | −0.02 |
| TabFM (x100 classifier) | 921 series, pre-registered | −0.15 | +0.87 family-weighted; +1.99 on repeat-heavy series |
Numbers are median nats per observation relative to laplace alone (FRED-30 rows are means relative to laplace's 3.674). The pattern: raw models trail by whole nats; sandwiched, they converge to laplace plus or minus a small epsilon, and the epsilon measures conditional structure laplace missed. The one large positive epsilon is the discrete TabFM head on repeat-heavy series, which found real structure and became a library work item.
Detectors
| detector | measure | raw | sandwiched |
|---|---|---|---|
| DSPOT (EVT thresholding) | UCR accuracy, 250 series | 0.120 | 0.232 |
| DSPOT | alarm rate at nominal 1e-3 (FRED, median) | 2.3e-3 | 2.5e-3, and best-in-table deep-tail behavior |
| RRCF (random cut forest) | UCR accuracy | 0.244 | 0.236 (a wash; carries its own normalizer) |
| left-discord matrix profile | UCR accuracy, 150 series | 0.587 | 0.427 (hurt; z whitens its templates) |
The detector rows locate the boundary: the sandwich lifts methods whose theorems want a stationary, calibrated input, does little for weak structural methods, and hurts template matchers. It transfers the forecaster's competence, in both directions.
Full protocols, statements filed before results, and every table's
source: the challengers page, the
paper's sandwich section, and
benchmarks/anomaly/RESULTS.md in the repository.