superlinear-ai / conformal-tights

šŸ‘– Conformal Tights adds conformal prediction of coherent quantiles and intervals to any scikit-learn regressor or Darts forecaster
MIT License
87 stars 3 forks source link

Bellman and hopCP? #29

Open AugustComte opened 5 months ago

AugustComte commented 5 months ago

Hello there, there are a few other approaches to this that I have seen and wondered if they are on your radar.

ļ‚§ Bellman Conformal Inference (BCI) - optimises prediction intervals for time series by formulating a stochastic control problem that minimizes interval lengths while ensuring target coverage levels. It uses dynamic programming to solve this problem, adjusting the trade-off between interval length and miscoverage. It works mostly for multistep forecasting, making it unsuitable for recursive modelling. ļ‚§ Hopfield Network (HopCT) ā€“ Uses a Hopfield network architecture to extract features from a time series and compute prediction errors. The errors are then used to weight the values in the series based on their similarity to past errors. It is primarily used with multivariate data. https://ml-jku.github.io/HopCPT/

I wondered if these could be options, as they make claims about improved approaches to coverage?

Side note, I haven't tried this yet, but does this work with darts back testing? For example say I ran a single backtest and could I use conformal tights to generate quartiles for the backtest?

lsorber commented 5 months ago

Hello there, there are a few other approaches to this that I have seen and wondered if they are on your radar.

ļ‚§ Bellman Conformal Inference (BCI) - optimises prediction intervals for time series by formulating a stochastic control problem that minimizes interval lengths while ensuring target coverage levels. It uses dynamic programming to solve this problem, adjusting the trade-off between interval length and miscoverage. It works mostly for multistep forecasting, making it unsuitable for recursive modelling. ļ‚§ Hopfield Network (HopCT) ā€“ Uses a Hopfield network architecture to extract features from a time series and compute prediction errors. The errors are then used to weight the values in the series based on their similarity to past errors. It is primarily used with multivariate data. https://ml-jku.github.io/HopCPT/

I wondered if these could be options, as they make claims about improved approaches to coverage?

Hi @AugustComte, thanks for the pointers! Some reflections on these below.

BCI:

HopCT:

Side note, I haven't tried this yet, but does this work with darts back testing? For example say I ran a single backtest and could I use conformal tights to generate quartiles for the backtest?

Yes, Conformal Tights' DartsForecaster is just a simple subclass of a Darts' RegressionModel that adds support for probabilistic forecasting, analogous to how Darts implemented their LightGBMModel as a RegressionModel with probabilistic forecasting support. And RegressionModel has backtesting support built-in. Note that you will want to select a metric suitable for evaluating probabilistic forecasts, such as Mean Quantile Loss.

AugustComte commented 5 months ago

Thank you for the response, it's all useful to information. I agree that BCI looks like a better option, if I get the opportunity I may try to incorporate it locally šŸ¤ž but I can't commit beyond that either sorry.