ETS

💡

Enterprise only

Compares current value to the value predicted by a model combining a regression model and an ETS forecasting algorithm1. The regression model learns the events effect. Eg Christmas, sales. The ETS model learns the level, the trend and the seasonality in the timeseries after the effect of events have been removed.

Inputs

"targetProperty": "current": The data on which to perform detection. It should contain the historical data to use for training.

"targetProperty": "current_events": Optional. The events data on which to perform detection. It should contain the historical events data to use for training.

Parameters

namedescriptiondefault value
component.intervalsMethodMethod to compute intervals. In CONFIDENCE, PERCENTAGE, ABSOLUTE.CONFIDENCE
component.sensitivityDetection sensitivity. For CONFIDENCE, value range is in [-25, 14]. 0 means z-score of 1. 10 means z score of 3.5
component.lookbackPeriodHistorical period to use for training. In ISO-8601 (opens in a new tab) format. Requires component.monitoringGranularity, see shared parameters. Eg: P14D. If component.lookbackPeriod is not set, component.lookback is used.
component.patternDetect as an anomaly if the metric drop, rise or both directions. UP, DOWN, UP_OR_DOWN.UP_OR_DOWN
component.regressorsFor advanced users. Additional list of features to add to the regression model. See available regressors. These additional features may help the model to learn the effect of events. Events features are created automatically.[] ie only use event regressors
component.forecastingProtocolProcess to use to run the detection. Used to make the alert evaluation calls and the first run of the alert faster. EXACT_REPLAY performs an exact one-step (opens in a new tab) backtracking, training one model for each point. Can be slow. FAST_REPLAY trains 1 model and then predict and updates this model incrementally.EXACT_REPLAY
component.seasonalityPeriodSeasonality biggest period to learn. In ISO-8601 format. Requires component.monitoringGranularity, see shared parameters. Eg: P7D will learn weekly and smaller seasonalities.
component.trendModeTrend mode as defined in ETS paper1. In NONE, ADDITIVE, DAMPED.ADDITIVE
component.seasonalModeSeasonal mode as defined in ETS paper1. In NONE, ADDITIVE, MULTIPLICATIVE.ADDITIVE
component.errorModeError mode as defined in ETS paper1. In ADDITIVE, MULTIPLICATIVE.ADDITIVE
component.alphaLevel smoothing factor. In [0,1]-1 - Optimized by BOBYQA
component.betaTrend smoothing factor. In [0,1]-1 - Optimized by BOBYQA
component.gammaSeasonal smoothing factor. In [0,1]-1 - Optimized by BOBYQA
component.phiDamping factor. In [0,1]. Only used if trendMode is set to DAMPED.-1 - Optimized by BOBYQA
component.alphaMaxMaximum value of alpha if alpha is optimized automatically.0.5
component.alphaMinMinimum value of alpha if alpha is optimized automatically.0.001
component.betaMaxMaximum value of beta if beta is optimized automatically.0.5
component.betaMinMinimum value of beta if beta is optimized automatically.0.001
component.gammaMaxMaximum value of gamma if gamma is optimized automatically.0.5
component.gammaMinMinimum value of gamma if gamma is optimized automatically.0.001
component.phiMaxMaximum value of phi if phi is optimized automatically.0.98
component.phiMinMinimum value of phi if phi is optimized automatically.0.75

Regressors

namedescription
EPOCHUnix epoch in milliseconds
MINUTE_OF_HOURMinute of the hour
HOUR_OF_DAYHour of the day
DAY_OF_WEEKDay of the week, between 0 and 6
IS_WEEKENDTrue if the day is Saturday or Sunday
IS_MONDAYTrue if the day is Monday
IS_TUESDAYTrue if the day is Tuesday
IS_WEDNESDAYTrue if the day is Wednesday
IS_THURSDAYTrue if the day is Thursday
IS_FRIDAYTrue if the day is Friday
IS_SATURDAYTrue if the day is Saturday
IS_SUNDAYTrue if the day is Sunday
DAY_OF_MONTHDay number of the month
DAY_OF_YEARDay number of the year
WEEK_OF_YEARWeek number of the year
MONTH_OF_YEARMonth number of the year

Example

Recommended defaults

{
      "name": "root",
      "type": "AnomalyDetector",
      "params": {
        "type": "ETS",
        "component.sensitivity": "3",
        "component.seasonalityPeriod": "P7D",
        "component.lookbackPeriod": "P28D",
        
        "component.alpha": "0.3",
        "component.beta": "0.1",
        "component.gamma": "0.05",
        ...  # other ets parameters
        ...  # shared parameters
      },
      "inputs": [
        {
          "targetProperty": "current",
          "sourcePlanNode": "currentData",
          "sourceProperty": "currentOutput"
        },
        {
          "targetProperty": "current_events",
          "sourcePlanNode": "currentEvents",
          "sourceProperty": "events"
        }
      ],
      "outputs": []
    }

Footnotes

  1. See https://www.researchgate.net/publication/5179823_Prediction_Intervals_for_Exponential_Smoothing_State_Space_Models (opens in a new tab) 2 3 4