Papers

Preliminary results for the regression front-end, with the losing rows reported next to the winning ones.

The paper

Skaters on a River: Calibrated Forecast Features for Streaming Regression, with a Pathwise Regret-Transfer Theorem. P. Cotton.

The package, the three-prong benchmark study with its losing rows, the ablation, and the theorem with proofs, in one place.

PDF →  ·  LaTeX (JSS)

The regression front-end

Calibrated forecast features for online regression. Preliminary, July 2026.

Replace each input stream with two scalars from its own Laplace forecaster, the predictive mean and the standardized surprise, and give the target its own pair while leaving the target raw. The regression then learns from variables that are stationary in scale, bounded in influence and calibrated. This is the regression instance of the Rosenblatt front-end thesis already measured for anomaly detectors and for forecasters: other people's methods get better in Laplace coordinates.

Markdown →  ·  Full results log (timemachines)

Headline table one — coordinates, not the loss

One fixed recursive-least-squares learner, eight contamination scenarios, 30 seeds, excess MSE against the clean conditional mean, medians. The front-end (zin) beats raw features 30/30 seeds on every contaminated scenario and beats a median/MAD winsorizer and a Huberised loss besides:

scenariorawrobusthuberzin
clean0.0010.1080.0010.057
spikes on x1.080.911.380.72
spikes on y3.784.423.751.84
heavy t(2)0.0082.170.0060.95
distortion1.050.531.480.51

The heavy-tail row is a boundary, not a bug: when the extremes are signal rather than noise, taming them costs accuracy, and the study reports that plainly.

Headline table two — river's own datasets

Progressive validation MAE, untouched data, tree learner. The body column is the target's Laplace predictive mean alone, no regression, no features, and it is the attribution control:

datasetriver pipelinefrontedbody alone
TrumpApproval0.3340.3810.150
ChickWeights23.824.725.5
AirlinePassengers41.926.629.4
Bikes (20k)5.075.294.94

On history-dominated streams the univariate forecaster alone already beats the full feature pipeline, on river's flagship documentation example by 2.2x. Under 2% injected feature spikes the front-end wins 10/10 on three of the four datasets. ChickWeights, which interleaves 50 growth curves under one key, is the disclosed counterexample.

The ablation, and the one-wrapper headline

Decomposing the pair: z alone is useless, since surprises carry no level; the mean alone pays a large clean toll and misses distortion; together they recombine into a conditional mean neither supports alone. And the sharpest cell came from the condition the first pass missed: LaplaceTarget alone, raw features untouched, beats river's pipeline on three of four of their datasets untouched (TrumpApproval 0.301 vs 0.334) and 10/10 under feature spikes, while tying the counterexample. The recommendation orders itself: add the target pair always; replace features with their pairs only when you distrust the features; never use z alone. Cost, measured: about 390 microseconds per stream per sample, roughly 900x StandardScaler, right at human timescales and wrong in a hot path. The fairness audit added the referee's baseline, raw target lags: strong on smooth single-entity series, fragile everywhere else, and the wrapper on top of lags improved the strongest configuration found on three of four datasets. Raw lags and forecaster features buy the same history; lags are the fragile way. And a free EWMA version of the pair, the cheap-rollup control, captures much of the insurance and even wins the smoothest dataset as features, while losing by 14-26% wherever the stream has structure it cannot track: the rollup shape is free insurance, the calibrated forecaster is the accuracy upgrade.

The theorem

Regret transfer through the front-end. Pathwise, with measured constants. The sandwich's log-loss regret against every conjugated linear-Gaussian refinement of the body is bounded by an explicit O(d log T) on any data sequence whatsoever, with no stationarity, moment or calibration assumption: the parade clamp manufactures the boundedness the online-learning theorem needs. The insurance corollary, at s = 1 and u = 0, says the sandwich can never lose more than O(d log T) nats to the forecaster alone, which resolves the output-sandwich pathology in the study as a property of point extraction rather than of the density. Proofs and the numerical bound check ship in the repo.

Markdown →  ·  The bound check

The outer boundary, measured

Are five calibrated numbers typically enough? On 126 non-price FRED cross-series pairs, measured across three learners: no. The signal there is the raw contemporaneous level of a correlated sibling, and the (mean, surprise) pair is a lossy encoding of a level, since rebuilding one needs the product of surprise and scale that a linear learner cannot form. The pair sits ~30% behind raw features clean, the contamination insurance narrows it, and including the raw value alongside the pair recovers most of the gap. Two learner facts travelled with the study: river's default SGD linear model silently diverges on tiny-scale streams, while its own BayesianLinearRegression handles them well and carried the verdict.

The one-sentence verdict

The additive framing closed the map: forecasts added on top of raw lags are worth nothing there, and insurance turns out to be a property of substitution, never addition. So: on plain linear universes, send raw lags; the calibrated features earn their place exactly when you distrust the channel (substitute, for insurance), when the stream has structure a lag cannot express (represent), or when you should not be regressing at all (forecast).

Status

Preliminary. Remaining open items: per-entity bodies for entity-interleaved streams, multi-horizon surprises from k=3 bodies, and concept-drift classification. Reproduction is five resumable harnesses in the timemachines repo with fixed seeds.