gluonts.model.forecast module#

class gluonts.model.forecast.Config(*, num_eval_samples: int = 100, output_types: Set[gluonts.model.forecast.OutputType] = {OutputType.mean, OutputType.quantiles}, quantiles: List[str] = ['0.1', '0.5', '0.9'], **extra_data: Any)[source]#

Bases: pydantic.main.BaseModel

class Config[source]#

Bases: object

allow_population_by_field_name = True#
extra = 'allow'#
num_samples: int#
output_types: Set[gluonts.model.forecast.OutputType]#
quantiles: List[str]#
class gluonts.model.forecast.ExponentialTailApproximation(x_coord: List[float], y_coord: List[numpy.ndarray], tol: float = 1e-08)[source]#

Bases: object

Approximate function on tails based on knots and make a inference on query point. Can be used for either interpolation or extrapolation on tails.

Parameters
  • x_coord – x-coordinates of the data points must be in increasing order.

  • y_coord – y-coordinates of the data points - may be a higher numpy array.

  • tol – tolerance when performing the division and computing the log in the exponential extrapolation.

init_exponential_tail_weights() Tuple[float, float][source]#

Initialize the weight of exponentially decaying tail functions based on two extreme points on the left and right, respectively.

Returns

beta coefficient for left and right tails.

Return type

Tuple

left(x: float) numpy.ndarray[source]#

Return the inference made on exponentially decaying tail functions.

For left tail, x = exp(beta * (q - alpha)) For right tail, x = 1 - exp(-beta * (q - alpha))

E.g. for x = self.x_coord[0] or self.x_coord[1], return value is exactly self.y_coord[0] or self.y_coord[1], respectively.

Parameters

x – x-coordinate to evaluate the right tail.

right(x: float) numpy.ndarray[source]#

Return the inference made on exponentially decaying tail functions.

For left tail, x = exp(beta * (q - alpha)) For right tail, x = 1 - exp(-beta * (q - alpha))

E.g. for x = self.x_coord[-1] or self.x_coord[-2] , return value is exactly self.y_coord[-1] or self.y_coord[-2] respectively. :param x: x-coordinate to evaluate the right tail.

tail_range(default_left_tail=0.1, default_right_tail=0.9)[source]#

Return an effective range of left and right tails.

class gluonts.model.forecast.Forecast[source]#

Bases: object

A abstract class representing predictions.

as_json_dict(config: gluonts.model.forecast.Config) dict[source]#
copy_aggregate(agg_fun: Callable)[source]#

Returns a new Forecast object with a time series aggregated over the dimension axis.

Parameters

agg_fun – Aggregation function that defines the aggregation operation (typically mean or sum).

copy_dim(dim: int)[source]#

Returns a new Forecast object with only the selected sub-dimension.

Parameters

dim – The returned forecast object will only represent this dimension.

dim() int[source]#

Returns the dimensionality of the forecast object.

property freq#
property index: pandas.core.indexes.period.PeriodIndex#
info: Optional[Dict]#
item_id: Optional[str]#
mean: numpy.ndarray#
property median: numpy.ndarray#
plot(prediction_intervals=(50.0, 90.0), show_mean=False, color='b', label=None, output_file=None, *args, **kwargs)[source]#

Plots the median of the forecast as well as confidence bounds. (requires matplotlib and pandas).

Parameters
  • prediction_intervals (float or list of floats in [0, 100]) – Confidence interval size(s). If a list, it will stack the error plots for each confidence interval. Only relevant for error styles with “ci” in the name.

  • show_mean (boolean) – Whether to also show the mean of the forecast.

  • color (matplotlib color name or dictionary) – The color used for plotting the forecast.

  • label (string) – A label (prefix) that is used for the forecast

  • output_file (str or None, default None) – Output path for the plot file. If None, plot is not saved to file.

  • args – Other arguments are passed to main plot() call

  • kwargs – Other keyword arguments are passed to main plot() call

prediction_length: int#
quantile(q: Union[float, str]) numpy.ndarray[source]#

Computes a quantile from the predicted distribution.

Parameters

q – Quantile to compute.

Returns

Value of the quantile across the prediction range.

Return type

numpy.ndarray

quantile_ts(q: Union[float, str]) pandas.core.series.Series[source]#
start_date: pandas._libs.tslibs.period.Period#
class gluonts.model.forecast.LinearInterpolation(x_coord: List[float], y_coord: List[numpy.ndarray], tol: float = 1e-08)[source]#

Bases: object

Linear interpolation based on datapoints (x_coord, y_coord)

Parameters
  • x_coord – x-coordinates of the data points must be in increasing order.

  • y_coord – y-coordinates of the data points - may be a list of lists.

  • tol – tolerance when performing the division in the linear interpolation.

linear_interpolation(x: float) numpy.ndarray[source]#

If x is out of interpolation range, return smallest or largest value. Otherwise, find two nearest points [x_1, y_1], [x_2, y_2] and return its linear interpolation.

y = (x_2 - x)/(x_2 - x_1) * y_1 + (x - x_1)/(x_2 - x_1) * y_2.

Parameters

x – x-coordinate to evaluate the interpolated points.

Returns

Interpolated values same shape as self.y_coord

Return type

np.ndarray

class gluonts.model.forecast.OutputType(value)[source]#

Bases: str, enum.Enum

An enumeration.

mean = 'mean'#
quantiles = 'quantiles'#
samples = 'samples'#
class gluonts.model.forecast.Quantile(*, value: float, name: str)[source]#

Bases: pydantic.main.BaseModel

classmethod checked(value: float, name: str) gluonts.model.forecast.Quantile[source]#
property coverage_name#
classmethod from_float(quantile: float) gluonts.model.forecast.Quantile[source]#
classmethod from_str(quantile: str) gluonts.model.forecast.Quantile[source]#
property loss_name#
name: str#
classmethod parse(quantile: Union[gluonts.model.forecast.Quantile, float, str]) gluonts.model.forecast.Quantile[source]#

Produces equivalent float and string representation of a given quantile level.

>>> Quantile.parse(0.1)
Quantile(value=0.1, name='0.1')
>>> Quantile.parse('0.2')
Quantile(value=0.2, name='0.2')
>>> Quantile.parse('0.20')
Quantile(value=0.2, name='0.20')
>>> Quantile.parse('p99')
Quantile(value=0.99, name='0.99')
Parameters

quantile – Quantile, can be a float a str representing a float e.g. ‘0.1’ or a quantile string of the form ‘p0.1’.

Returns

A tuple containing both a float and a string representation of the input quantile level.

Return type

Quantile

value: float#
property weighted_loss_name#
class gluonts.model.forecast.QuantileForecast(forecast_arrays: numpy.ndarray, start_date: pandas._libs.tslibs.period.Period, forecast_keys: List[str], item_id: Optional[str] = None, info: Optional[Dict] = None)[source]#

Bases: gluonts.model.forecast.Forecast

A Forecast that contains arrays (i.e. time series) for quantiles and mean.

Parameters
  • forecast_arrays – An array of forecasts

  • start_date (pandas._libs.tslibs.period.Period) – start of the forecast

  • forecast_keys – A list of quantiles of the form ‘0.1’, ‘0.9’, etc., and potentially ‘mean’. Each entry corresponds to one array in forecast_arrays.

  • info (Optional[Dict]) – additional information that the forecaster may provide e.g. estimated parameters, number of iterations ran etc.

dim() int[source]#

Returns the dimensionality of the forecast object.

info: Optional[Dict]#
item_id: Optional[str]#
property mean: numpy.ndarray#

Forecast mean.

plot(label=None, output_file=None, keys=None, *args, **kwargs)[source]#

Plots the median of the forecast as well as confidence bounds. (requires matplotlib and pandas).

Parameters
  • prediction_intervals (float or list of floats in [0, 100]) – Confidence interval size(s). If a list, it will stack the error plots for each confidence interval. Only relevant for error styles with “ci” in the name.

  • show_mean (boolean) – Whether to also show the mean of the forecast.

  • color (matplotlib color name or dictionary) – The color used for plotting the forecast.

  • label (string) – A label (prefix) that is used for the forecast

  • output_file (str or None, default None) – Output path for the plot file. If None, plot is not saved to file.

  • args – Other arguments are passed to main plot() call

  • kwargs – Other keyword arguments are passed to main plot() call

prediction_length: int#
quantile(inference_quantile: Union[float, str]) numpy.ndarray[source]#

Computes a quantile from the predicted distribution.

Parameters

q – Quantile to compute.

Returns

Value of the quantile across the prediction range.

Return type

numpy.ndarray

start_date: pandas._libs.tslibs.period.Period#
class gluonts.model.forecast.SampleForecast(samples: numpy.ndarray, start_date: pandas._libs.tslibs.period.Period, item_id: Optional[str] = None, info: Optional[Dict] = None)[source]#

Bases: gluonts.model.forecast.Forecast

A Forecast object, where the predicted distribution is represented internally as samples.

Parameters
  • samples – Array of size (num_samples, prediction_length) (1D case) or (num_samples, prediction_length, target_dim) (multivariate case)

  • start_date (pandas._libs.tslibs.period.Period) – start of the forecast

  • info (Optional[Dict]) – additional information that the forecaster may provide e.g. estimated parameters, number of iterations ran etc.

as_json_dict(config: gluonts.model.forecast.Config) dict[source]#
copy_aggregate(agg_fun: Callable) gluonts.model.forecast.SampleForecast[source]#

Returns a new Forecast object with a time series aggregated over the dimension axis.

Parameters

agg_fun – Aggregation function that defines the aggregation operation (typically mean or sum).

copy_dim(dim: int) gluonts.model.forecast.SampleForecast[source]#

Returns a new Forecast object with only the selected sub-dimension.

Parameters

dim – The returned forecast object will only represent this dimension.

dim() int[source]#

Returns the dimensionality of the forecast object.

info: Optional[Dict]#
item_id: Optional[str]#
property mean: numpy.ndarray#

Forecast mean.

property mean_ts: pandas.core.series.Series#

Forecast mean, as a pandas.Series object.

property num_samples#

The number of samples representing the forecast.

property prediction_length#

Time length of the forecast.

quantile(q: Union[float, str]) numpy.ndarray[source]#

Computes a quantile from the predicted distribution.

Parameters

q – Quantile to compute.

Returns

Value of the quantile across the prediction range.

Return type

numpy.ndarray

start_date: pandas._libs.tslibs.period.Period#
to_quantile_forecast(quantiles: List[str]) gluonts.model.forecast.QuantileForecast[source]#