DeadlineMovingAverageModel#

class DeadlineMovingAverageModel(window: int = 3, seasonality: str = 'month')[source]#

Bases: NonPredictionIntervalContextRequiredAbstractModel

Moving average model that uses exact previous dates to predict.

Notes

This model supports in-sample and out-of-sample prediction decomposition. Prediction components are corresponding target seasonal lags (monthly or annual) with weights of \(1/window\).

Initialize deadline moving average model.

Length of the context is equal to the number of window months or years, depending on the seasonality.

Parameters:
  • window (int) – Number of values taken for forecast for each point.

  • seasonality (str) – Only allowed values are “month” and “year”.

Methods

fit(ts)

Fit model.

forecast(ts, prediction_size[, ...])

Make autoregressive forecasts.

get_model()

Get internal model.

load(path)

Load an object.

params_to_tune()

Get default grid for tuning hyperparameters.

predict(ts, prediction_size[, return_components])

Make predictions using true values as autoregression context (teacher forcing).

save(path)

Save the object.

set_params(**params)

Return new object instance with modified parameters.

to_dict()

Collect all information about etna object in dict.

Attributes

This class stores its __init__ parameters as attributes.

context_size

Upper bound to context size of the model.

fit(ts: TSDataset) DeadlineMovingAverageModel[source]#

Fit model.

Parameters:

ts (TSDataset) – Dataset with features

Returns:

Model after fit

Return type:

DeadlineMovingAverageModel

forecast(ts: TSDataset, prediction_size: int, return_components: bool = False) TSDataset[source]#

Make autoregressive forecasts.

Parameters:
  • ts (TSDataset) – Dataset with features

  • prediction_size (int) – Number of last timestamps to leave after making prediction. Previous timestamps will be used as a context.

  • return_components (bool) – If True additionally returns forecast components

Returns:

Dataset with predictions

Raises:
  • NotImplementedError: – if return_components mode is used

  • ValueError: – if model isn’t fitted

  • ValueError: – if context isn’t big enough

  • ValueError: – if forecast context contains NaNs

Return type:

TSDataset

get_model() DeadlineMovingAverageModel[source]#

Get internal model.

Returns:

Itself

Return type:

DeadlineMovingAverageModel

classmethod load(path: Path) Self[source]#

Load an object.

Parameters:

path (Path) – Path to load object from.

Returns:

Loaded object.

Return type:

Self

params_to_tune() Dict[str, BaseDistribution][source]#

Get default grid for tuning hyperparameters.

This grid tunes window parameter. Other parameters are expected to be set by the user.

Returns:

Grid to tune.

Return type:

Dict[str, BaseDistribution]

predict(ts: TSDataset, prediction_size: int, return_components: bool = False) TSDataset[source]#

Make predictions using true values as autoregression context (teacher forcing).

Parameters:
  • ts (TSDataset) – Dataset with features

  • prediction_size (int) – Number of last timestamps to leave after making prediction. Previous timestamps will be used as a context.

  • return_components (bool) – If True additionally returns prediction components

Returns:

Dataset with predictions

Raises:
  • NotImplementedError: – if return_components mode is used

  • ValueError: – if model isn’t fitted

  • ValueError: – if context isn’t big enough

  • ValueError: – if forecast context contains NaNs

Return type:

TSDataset

save(path: Path)[source]#

Save the object.

Parameters:

path (Path) – Path to save object to.

set_params(**params: dict) Self[source]#

Return new object instance with modified parameters.

Method also allows to change parameters of nested objects within the current object. For example, it is possible to change parameters of a model in a Pipeline.

Nested parameters are expected to be in a <component_1>.<...>.<parameter> form, where components are separated by a dot.

Parameters:

**params (dict) – Estimator parameters

Returns:

New instance with changed parameters

Return type:

Self

Examples

>>> from etna.pipeline import Pipeline
>>> from etna.models import NaiveModel
>>> from etna.transforms import AddConstTransform
>>> model = model=NaiveModel(lag=1)
>>> transforms = [AddConstTransform(in_column="target", value=1)]
>>> pipeline = Pipeline(model, transforms=transforms, horizon=3)
>>> pipeline.set_params(**{"model.lag": 3, "transforms.0.value": 2})
Pipeline(model = NaiveModel(lag = 3, ), transforms = [AddConstTransform(in_column = 'target', value = 2, inplace = True, out_column = None, )], horizon = 3, )
to_dict()[source]#

Collect all information about etna object in dict.

property context_size: int[source]#

Upper bound to context size of the model.