def __init__(
        self, aggregation_fun: Callable[[Array], Array] = lambda x: jnp.mean(x, 0)
    ):
        """
        Ensemble Batch Prediction Intervals (EnbPI) is a conformal prediction algorithm for time series regression.
        By bootstrapping the data and training the model on each of the bootstrap samples, EnbPI is able to compute
        conformal intervals that satisfy an approximate marginal guarantee on each test data point. Furthermore,
        EnbPI can incorporate online feedback from incoming batches of data, and improve the conformal intervals
        without having to retrain the model.

        Parameters
        ----------
        aggregation_fun: Callable[[Array], Array]
            Aggregation function that takes a group of model predictions from different bootstrap samples and reduces
            them to a single one.
        """
        self.aggregation_fun = aggregation_fun

        Ensemble Batch Prediction Intervals (EnbPI) is a conformal prediction algorithm for time series regression.
        By bootstrapping the data and training the model on each of the bootstrap samples, EnbPI is able to compute
        conformal intervals that satisfy an approximate marginal guarantee on each test data point. Furthermore,
        EnbPI can incorporate online feedback from incoming batches of data, and improve the conformal intervals
        without having to retrain the model.

        Parameters
        ----------
        aggregation_fun: Callable[[Array], Array]
            Aggregation function that takes a group of model predictions from different bootstrap samples and reduces
            them to a single one.
        
fortuna/conformal/regression/enbpi.py