Skip to main content
AgACI removes the one decision ACI forces on you. Instead of picking a learning rate, run several and let online aggregation decide, continuously, how much to trust each.

What it does

AgACI maintains K independent ACI experts, one per candidate gamma. At each step every expert proposes an interval, and the two bounds are aggregated separately:
The weights come from an online aggregator — exponentially weighted averaging by default — fed the pinball loss of each expert at its own bound: alpha/2 for the lower, 1 - alpha/2 for the upper. An expert whose lower bound has been well placed gains weight on the lower bound only. That is why the two bounds get separate weight vectors, and why an AgACI interval is generally asymmetric even when every underlying expert is symmetric. The best learning rate for tracking the bottom of a distribution is not usually the best one for the top.
Original aggregation The original aggregation is the Bernstein online aggregation but this implementation defaults to exponentially weighted averaging, and the aggregator parameter lets you supply your own, as a prototype instance.

Worked example

Same setup as the ACI page — one month ahead, streaming the last four years — so the numbers are directly comparable.
Note what happened to the largest experts gamma = 0.2 on its own degenerates — a run of misses drives its alpha_t to zero and its interval becomes infinitely wide. AgACI contains that expert and is unharmed, because the aggregator simply stops giving it weight. That is the practical argument for aggregation over tuning: a bad gamma chosen by hand is a production incident, while a bad gamma inside AgACI is a line on a weight plot. The clipping arguments interval_clip_lower and interval_clip_upper are the second line of defence; left at None they are derived at fit time from the calibration truths.

Where the weight went

The resulting band

The AgACI band is not centred on the forecast: the two bounds are aggregated with different weights, so they move independently. On a trending series that is a feature — the upper bound has more work to do than the lower one.

When not to use it

  • You have very few update steps. Aggregation needs time to sort the experts out. Over a handful of observations AgACI is K ACIs paying rent, and plain ACI with a sensible gamma is simpler.
  • You need a symmetric interval by contract. AgACI’s asymmetry is intrinsic.
  • Cost matters and K is large. AgACI runs every expert every step. The expert axis is batched, so this is array work rather than a Python loop, but it is still K times the state.

References

M. Zaffran, A. Dieuleveut, F. Olivier, Y. Goude, and J. Josse, “Adaptive Conformal Predictions for Time Series,” arXiv.org, 2022. https://arxiv.org/abs/2202.07282.

Next

  • NexCP — drift handled by weighting residuals instead of targets.
  • SPCI — width that varies per step.
  • Online updating — the general loop.