Back to models
Forecaster

AutoETS

ETS models with both manual and automatic fitting capabilities.

Quickstart

python
from sktime.forecasting.ets import AutoETS

estimator = AutoETS(error='add', trend=None, damped_trend=False, seasonal=None, sp=1, initialization_method='estimated', initial_level=None, initial_trend=None, initial_seasonal=None, bounds=None, dates=None, freq=None, missing='none', start_params=None, maxiter=1000, full_output=True, disp=False, callback=None, return_params=False, auto=False, information_criterion='aic', allow_multiplicative_trend=False, restrict=True, additive_only=False, ignore_inf_ic=True, n_jobs=None, random_state=None)

Parameters(24)

errorstr, default=”add”
The error model. Takes one of “add” or “mul”. Ignored if auto=True.
trendstr or None, default=None
The trend component model. Takes one of “add”, “mul”, or None. Ignored if auto=True.
damped_trendbool, default=False
Whether or not an included trend component is damped. Ignored if auto=True.
seasonalstr or None, default=None
The seasonality model. Takes one of “add”, “mul”, or None. Ignored if auto=True.
spint, default=1

The number of periods in a complete seasonal cycle for seasonal (Holt-Winters) models. For example, 4 for quarterly data with an annual cycle or 7 for daily data with a weekly cycle. Required if seasonal is not None.

initialization_methodstr, default=’estimated’

Method for initialization of the state space model. One of:

  • ‘estimated’ (default)

  • ‘heuristic’

  • ‘known’

If ‘known’ initialization is used, then initial_level must be passed, as well as initial_trend and initial_seasonal if applicable. ‘heuristic’ uses a heuristic based on the data to estimate initial level, trend, and seasonal state. ‘estimated’ uses the same heuristic as initial guesses, but then estimates the initial states as part of the fitting process. Default is ‘estimated’.

initial_levelfloat or None, default=None
The initial level component. Only used if initialization is ‘known’.
initial_trendfloat or None, default=None
The initial trend component. Only used if initialization is ‘known’.
initial_seasonalarray_like or None, default=None

The initial seasonal component. An array of length seasonal_periods. Only used if initialization is ‘known’.

boundsdict or None, default=None

A dictionary with parameter names as keys and the respective bounds intervals as values (lists/tuples/arrays). The available parameter names are, depending on the model and initialization method:

  • “smoothing_level”

  • “smoothing_trend”

  • “smoothing_seasonal”

  • “damping_trend”

  • “initial_level”

  • “initial_trend”

  • “initial_seasonal.0”, …, “initial_seasonal.<m-1>”

The default option is None, in which case the traditional (nonlinear) bounds as described in [1] are used.

start_paramsarray_like or None, default=None

Initial values for parameters that will be optimized. If this is None, default values will be used. The length of this depends on the chosen model. This should contain the parameters in the following order, skipping parameters that do not exist in the chosen model.

  • smoothing_level (alpha)

  • smoothing_trend (beta)

  • smoothing_seasonal (gamma)

  • damping_trend (phi)

If initialization_method was set to 'estimated' (the default), additionally, the parameters

  • initial_level (\(l_{-1}\))

  • initial_trend (\(l_{-1}\))

  • initial_seasonal.0 (\(s_{-1}\))

  • initial_seasonal.<m-1> (\(s_{-m}\))

also have to be specified.

maxiterint, default=1000
The maximum number of iterations to perform.
full_outputbool, default=True
Set to True to have all available output in the Results object’s mle_retvals attribute. The output is dependent on the solver. See LikelihoodModelResults notes section for more information.
dispbool, default=False
Set to True to print convergence messages.
callbackcallable callback(xk) or None, default=None
Called after each iteration, as callback(xk), where xk is the current parameter vector.
return_paramsbool, default=False
Whether or not to return only the array of maximizing parameters.
autobool, default=False
Set True to enable automatic model selection. If auto=True, then error, trend, seasonal and damped_trend are ignored.
information_criterionstr, default=”aic”

Information criterion to be used in model selection. One of:

  • “aic”

  • “bic”

  • “aicc”

allow_multiplicative_trendbool, default=False
If True, models with multiplicative trend are allowed when searching for a model. Otherwise, the model space excludes them.
restrictbool, default=True
If True, the models with infinite variance will not be allowed.
additive_onlybool, default=False
If True, will only consider additive models.
ignore_inf_ic: bool, default=True
If True models with negative infinity Information Criterion (aic, bic, aicc) will be ignored.
n_jobsint or None, default=None

The number of jobs to run in parallel for automatic model fitting. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors.

random_stateint, RandomState instance or None, optional,
default=None - If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.

Examples

>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.ets import AutoETS
>>> y = load_airline ()
>>> forecaster = AutoETS (auto = True, n_jobs =- 1, sp = 12)
>>> forecaster. fit (y) AutoETS(
... )
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ])

References

  1. [1 ] Hyndman, R.J., & Athanasopoulos, G. (2019) Forecasting: principles and practice, 3rd edition, OTexts: Melbourne, Australia. OTexts.com/fpp3. Accessed on April 19th 2020. [2 ] (1, 2) Statsmodels ETS: https://www.statsmodels.org/stable/_modules/statsmodels/tsa/exponential_smoothing/ets.html#ETSModel [3 ] (1, 2) R Version of ETS: https://www.rdocumentation.org/packages/forecast/versions/8.12/topics/ets