R: Exponential smoothing state space model

ETS {fable} | R Documentation

## Exponential smoothing state space model

### Description

Returns ETS model specified by the formula.

### Usage

    ETS(
      formula,
      opt_crit = c("lik", "amse", "mse", "sigma", "mae"),
      nmse = 3,
      bounds = c("both", "usual", "admissible"),
      ic = c("aicc", "aic", "bic"),
      restrict = TRUE,
      ...
    )

### Arguments

`formula` | Model specification (see "Specials" section).
`opt_crit` | The optimization criterion. Defaults to the log-likelihood `"lik"`, but can also be set to `"mse"` (Mean Square Error), `"amse"` (Average MSE over first `nmse` forecast horizons), `"sigma"` (Standard deviation of residuals), or `"mae"` (Mean Absolute Error).
`nmse` | If `opt_crit == "amse"`, `nmse` provides the number of steps for average multistep MSE (`1<=nmse<=30`).
`bounds` | Type of parameter space to impose: `"usual"` indicates all parameters must lie between specified lower and upper bounds; `"admissible"` indicates parameters must lie in the admissible space; `"both"` (default) takes the intersection of these regions.
`ic` | The information criterion used in selecting the model.
`restrict` | If TRUE (default), the models with infinite variance will not be allowed. These restricted model components are AMM, AAM, AMA, and MMA.
`...` | Other arguments

### Details

Based on the classification of methods as described in Hyndman et al (2008).

The methodology is fully automatic. The model is chosen automatically if not specified. This methodology performed extremely well on the M3-competition data. (See Hyndman, et al, 2002, below.)

### Value

A model specification.

### Specials

The specials define the methods and parameters for the components (error, trend, and seasonality) of an ETS model. If more than one method is specified, `ETS` will consider all combinations of the specified models and select the model which best fits the data (minimising `ic`). The method argument for each specials have reasonable defaults, so if a component is not specified an appropriate method will be chosen automatically.

There are a couple of limitations to note about ETS models:

- It does not support exogenous regressors.

- It does not support missing values. You can complete missing values in the data with imputed values (e.g. with `tidyr::fill()`, or by fitting a different model type and then calling `fabletools::interpolate()`) before fitting the model.

#### error

The `error` special is used to specify the form of the error term.

    error(method = c("A", "M"))

`method` | The form of the error term: either additive ("A") or multiplicative ("M"). If the error is multiplicative, the data must be non-negative. All specified methods are tested on the data, and the one that gives the best fit (lowest `ic`) will be kept.

#### trend

The `trend` special is used to specify the form of the trend term and associated parameters.

    trend(method = c("N", "A", "Ad"),
          alpha = NULL, alpha_range = c(1e-04, 0.9999),
          beta = NULL, beta_range = c(1e-04, 0.9999),
          phi = NULL, phi_range = c(0.8, 0.98))

`method` | The form of the trend term: either none ("N"), additive ("A"), multiplicative ("M") or damped variants ("Ad", "Md"). All specified methods are tested on the data, and the one that gives the best fit (lowest `ic`) will be kept.
`alpha` | The value of the smoothing parameter for the level. If `alpha = 0`, the level will not change over time. Conversely, if `alpha = 1` the level will update similarly to a random walk process.
`alpha_range` | If `alpha=NULL`, `alpha_range` provides bounds for the optimised value of `alpha`.
`beta` | The value of the smoothing parameter for the slope. If `beta = 0`, the slope will not change over time. Conversely, if `beta = 1` the slope will have no memory of past slopes.
`beta_range` | If `beta=NULL`, `beta_range` provides bounds for the optimised value of `beta`.
`phi` | The value of the dampening parameter for the slope. If `phi = 0`, the slope will be dampened immediately (no slope). Conversely, if `phi = 1` the slope will not be dampened.
`phi_range` | If `phi=NULL`, `phi_range` provides bounds for the optimised value of `phi`.

#### season

The `season` special is used to specify the form of the seasonal term and associated parameters. To specify a nonseasonal model you would include `season(method = "N")`.

    season(method = c("N", "A", "M"), period = NULL,
           gamma = NULL, gamma_range = c(1e-04, 0.9999))

`method` | The form of the seasonal term: either none ("N"), additive ("A") or multiplicative ("M"). All specified methods are tested on the data, and the one that gives the best fit (lowest `ic`) will be kept.
`period` | The periodic nature of the seasonality. This can be either a number indicating the number of observations in each seasonal period, or text to indicate the duration of the seasonal window (for example, annual seasonality would be "1 year").
`gamma` | The value of the smoothing parameter for the seasonal pattern. If `gamma = 0`, the seasonal pattern will not change over time. Conversely, if `gamma = 1` the seasonality will have no memory of past seasonal periods.
`gamma_range` | If `gamma=NULL`, `gamma_range` provides bounds for the optimised value of `gamma`.

### References

Hyndman, R.J., Koehler, A.B., Snyder, R.D., and Grose, S. (2002) "A state space framework for automatic forecasting using exponential smoothing methods", International J. Forecasting, 18(3), 439–454.

Hyndman, R.J., Akram, Md., and Archibald, B. (2008) "The admissible parameter space for exponential smoothing models". Annals of Statistical Mathematics, 60(2), 407–426.

Hyndman, R.J., Koehler, A.B., Ord, J.K., and Snyder, R.D. (2008) Forecasting with exponential smoothing: the state space approach, Springer-Verlag. http://www.exponentialsmoothing.net.

### See Also

Forecasting: Principles and Practices, Exponential smoothing (chapter 8)

### Examples

    as_tsibble(USAccDeaths) %>%
      model(ETS(log(value) ~ season("A")))

[Package fable version 0.3.1 Index]