Default parameter set for the ATT forecast engine
This topic describes the default parameters specified for the configuration of the ATT forecast engine. The list contains the single value input parameters to configure the forecast engine. The default parameter list for an initial model using the "best" fit (picking algorithm):
Name | Description | Used by Algorithms | Accepted Range | Default Value (Demand+ template) |
---|---|---|---|---|
Boundary constant | ATTEngineDataClass.boundaryConstant Used in the Robust Holt-Winters algorithm. The recommended values are 100, if no outlier detection is required. If outlier detection is required, the value is 3.5. The boundary constant represents the number of standard deviations of the historical value, when compared to the forecasted value. |
Best, H-W | positive decimal | 3.5 |
Confidence Limit | BatsEngineDataClass.confidenceLimit This represents the confidence limit for the Ljung-Box test. The Ljung-Box test checks for the statistical significance in the model fitted residuals. If the test is significant, the residuals are not random which is not valid for a well fitted model. A value of zero instructs the engine to not calculate this statistic. The closer the value is to 1, the more likely that a significant result is generated. However, the model can still be used, even if the result is significant. |
BATS | 0 < x <= 1 | 0.95 |
Decision Criterion | MainDataClass.decisionCriterion This determines the type of decision criterion to be used for testing which model is "best" . Used in both the Best algorithm and optimization. AIC (Akaike Information Criterion) and BIC (Bayesian Information Criterion) are typically better than the SD (Standard Deviation) model. |
Best, H-W (Optimize = TRUE) | AIC, BIC, SD | AIC |
Epoch | The number of loops of the entire data set that the model
performs to calculate the model coefficients. Higher the value of epoch, more accurate the model, but impacts the performance Note: This is
applicable when option is set to On.
|
Best where any of ML Train-Test, ML Train-Test randomization, ML Cross-Validation, ML full dataset or ML full dataset randomization = True | Positive Integer | 50 |
Folds | The number of folds used in setting up cross-validation
data sets. Note: This is applicable when option is set to On.
|
Best where Machine Learning Cross-Validation = True | Positive Integer | 50 |
Forecast Test Magnitude | Represents the magnitude of forecast against history. This also provide a check to help in assessing the fitness of the future forecast. | All | Positive decimal | 0 |
History Trend Damping Factor | ModelDataClass.historyTrendDampingFactor This represents the history trend damping factor for the Holt-Winters algorithm. This factor is used to dampen the trend during the model fitting process. This factor is also used to continue dampening the trend in the forecast. If there is a strong trend in the data, the trend damping factor must be close to 1, so that a value of 0.95 is considered acceptable. If no trend damping is required, you must use a value of 1. |
Best, H-W | 0 < x <= 1 | 1 |
Initialization Type | ModelFitController:InitialisationType This determines which initialization technique must be used, when the algorithm is Holt-Winters. Not applicable, when calling the engine using Best (fitmodelPickingAlgorithm), because a subset of initialization techniques are used. |
H-W | NOINITIALISATION, MEDIANS, AVERAGING, DECOMPOSITION, LEASTSQUARE, BACKCASTING | MEDIANS |
Intervention Regression Discount | BatEngineDataClass.interventionRegressionDiscount Applied to revise the regression coefficients of the forecast. This is used in place of the routine version under certain circumstances, for example an outlier or a step-change. Note: This value must be lower than the
standard discount factor.
|
BATS | 0 =< x < 1 | 0 |
Intervention Seasonal Discount | BatEngineDataClass.interventionSeasonalDiscount Applied
to revise the seasonal coefficient of the forecast. This is used in place of
the routine version under certain circumstances, for example an outlier or a
step-change.Note: This value must be lower than the standard discount
factor.
|
BATS | 0 =< x < 1 | 0 |
Intervention Trend Discount | BatEngineDataClass.interventionTrendDiscount Applied to
revise the trend elements of the forecast (level and growth). This is used
in place of the routine version under certain circumstances, for example an
outlier or a step-change.Note: This value must be lower than the standard
discount factor.
|
BATS | 0 =< x < 1 | 0 |
Intervention Variance Discount | BatEngineDataClass.interventionVarianceDiscount Applied
to revise the variance estimate of the forecast (level and growth). This is
used in place of the routine version under certain circumstances, for
example an outlier or a step-change. |
BATS | 0 =< x < 1 | 0 |
Exponentially weighted moving average Lambda | ATTEngineDataClass.exponentiallyWMALambda This
represents the weighting factor used by the exponential moving average
algorithm. This is used to increase or decrease the influence of the new
observation on the moving average value. When the coefficient is 0, the new
observation has no influence on the moving average value. When the
coefficient is 1, the new observation becomes the moving average value. For
example, a value of 0.05 <= x <= 0.25 and 0.2 <= x <= 0.3 is
reasonable. |
Best, EWMA | 0 < x <= 1 | 0.2 |
Least Squares outlier standard deviation | ATTEngineDataClass.leastSquaresOutlierSD The minimum number
of standard deviations for a data point when compared to the forecast, to
flag the same as an outlier for the Least Squares algorithm (default = 0,
which effectively stops the outlier detection). If the outlier testing is
required, low values are recommended, for example, 2. Outliers work only
when large errors occur. This is due to the Least Squares model fit
including any outlier observations in the initial calculation and therefore
being relatively unresponsive to outliers. |
BEST, LS | integer | 2 |
Level Inflation Factor | BatsEngineDataClass.levelInflationFactor Applied to the
current standard deviation estimation to create two alternative models (one
higher and one lower) to compare with the current model. This is used in
BATS monitoring. |
BATS | 0 - 99.9 | 3.5 |
Level Inflation Threshold | BatsEngineDataClass.levelInflationThreshold The minimum accepted value for the Bayes factor for level shift before a tracking signal is activated. This is used in BATS monitoring. If the Bayes factor falls below the threshold value in an individual period, an outlier is declared. If the Bayes factor falls below the threshold value on a cumulative basis, the tracking signal and process are activated. |
BATS | 0 < x <= 1 | 1 |
Level smoothing coefficient | ModelDataClass.alpha This represents the level smoothing coefficient for the Holt-Winters algorithm. This is used to increase or decrease the influence (the weighting, rate of decay, and so on) of the new observation on the level component of the Holt-Winters model. When the coefficient is 0, the new observation has no influence on the level of the model. When the coefficient is 1, the new observation becomes the smoothing level (after any seasonal influence is removed, where applicable). Note: When the optimize macro parameter = TRUE, the engine
applies several values using the values that produce the model with the
lowest value of the chosen decision criteria.
|
Best. H-W (Optimization = TRUE) |
0 < x <= 1 | 0.4 |
Learning rate | Determines the errors that are built back into the model
during the calculation of the model coefficient. Note: This is applicable
when
option is set to On.
|
Best where any of ML Train-Test, ML Train-Test randomization, ML Cross-Validation, ML full dataset or ML full dataset randomization = True | Positive Decimal | 0.001 |
Maximum Model Terms | BatsEngineDataClass.maximumModelTerms The maximum number of terms in the generated model. This includes level, trend and 6 harmonics (6 pairs of a sine and cosine). Note: It does not include
regressors.
|
BATS | 1-14 | 14 |
Minimum periods for SMP | Determines the minimum number of non-zero history values
for an item to be considered as a non-SMP (slow moving product, or product
of intermittent/sparse demand). Note: The user-defined masks are removed
before the test.
|
All, except EVO | Integer >= 0 | 0 |
Model Form | ModelDataClass.ModelForm This determines the type of model to be used, for example, constant (level only), linear (level and trend), seasonal (level, trend and seasonality). This must work together with the selected SeasonalType parameter. Note:
|
All | NOTSET, CONSTANT, LINEAR, CONSTANT_SEASONAL, SEASONAL | NOTSET |
Moving Average outlier standard deviation | ATTEngineDataClass.movingAverageOutlierSD The minimum number of standard deviations for a data point when compared to the forecast, to flag the same as an outlier for the Moving Average algorithm (default = 0, which effectively stops outlier detection). If outlier testing is required, low values are recommended, for example, 2. Outliers work only when large errors must occur. This is due to the Moving Average model fit including any outlier observations in the initial calculation and therefore being relatively unresponsive to outliers. |
BEST, MA, EWMA | integer | 2 |
Moving average point value | ModelDataClass.movingAveragePoint) This represents the number of data points used in each moving point calculation. Note: This is not a centered moving
average.
|
BEST, EWMA, MA | positive integer | 4 |
MLR Trim Factor | This removes the highest and lowest
forecasts (x) in each time period prior to the combining process. This
represents a one-sided value that is when you remove the first and last
values, x =1. Note: This is applicable when option is set to
On.
|
Best where any of ML Train-Test, ML Train-Test randomization, ML Cross-Validation, ML full dataset or ML full dataset randomization = True | Positive Integer | 0 |
Optimization Increment | OptimisationDataClass.optimisationIncrement The Late Acceptance Hill Climbing (LAHC) optimization heuristic parameter is used to determine the quantum of increase for the relevant Holt-Winters smoothing coefficient, on an iteration of the optimization algorithm. Decrease this value towards zero to increase the number of iterations, which in turn decreases the overall optimization performance. |
BATS, BEST, H-W | 0 =< x <= 1 | 0.1 |
Optimization Percentage | OptimisationDataClass.optimisationPercentage The Late Acceptance Hill Climbing (LAHC) optimization heuristic parameter is used to determine the number of candidate solutions that must be calculated consecutively, when the solution is not saved to complete the optimization run. This is the percentage of the total number of runs that can occur, based on the incremental optimization and the model form. If this value is equal to one, the optimization is used to determine the total number of runs that can occur based on the incremental optimization and the model form. If this value is zero, a single run is performed using the optimization starting values for the relevant smoothing coefficients. The use of the default value is the recommended. As this value reaches 1, the length of the run increases and therefore the performance decreases. However, the possibility of reaching the required global minimum value (the Best smoothing parameters) increases. |
BEST, H-W | 0 =< x <= 1 | 0.1 |
Optimization Starting Value Alpha | OptimisationDataClass.
OptimisationStartingValueAlpha The Late Acceptance Hill Climbing (LAHC) optimization heuristic parameter is used to determine the starting value of the trend smoothing coefficient for the Holt-Winters algorithm. |
BATS, BEST, H-W | 0 =< x <= 1 | 0 |
Optimization Starting Value Beta | OptimisationDataClass.
OptimisationStartingValueBeta The Late Acceptance Hill Climbing (LAHC) optimization heuristic parameter is used to determine the starting value of the trend smoothing coefficient for the Holt-Winters algorithm. |
BATS, BEST, H-W | 0 =< x <= 1 | 0 |
Optimization Starting Value Gamma | OptimisationDataClass.
OptimisationStartingValueGamma The Late Acceptance Hill Climbing (LAHC) optimization heuristic parameter is used to determine the starting value of the seasonal smoothing coefficient for the Holt-Winters algorithm. |
BATS, BEST, H-W | 0 =< x <= 1 | 0 |
Outlier Exception Horizon | Determines the history horizon in the Outlier Exception test at the period level of the calculated forecast (For example, number of months, if Period Level = Months). Outliers are set for the full history, however only if there is an outlier within the most recent periods covering the exception horizon is flagged as a static alert (at pconst). If not specified, all history horizon is considered. | BATS, BEST, EWMA, LS, MA | Positive Integer | Null |
Perform Outlier Testing | MainDataClass.performOutlierTesting Determines if checks are performed for outliers in the Holt-Winters, Least Squares, Moving Average, and Exponential Moving Average algorithms. |
BATS, BEST, EWMA, H-W, LS, MA | True or False | True |
Perform Step Changes | MainDataClass.performStepChanges Determines if checks are performed for step changes in the Holt-Winters algorithm. |
BATS, BEST, H-W | True or False | True |
Perform Tracking | MainDataClass.performTracking Determines if the engine checks for tracking signals in the Holt-Winters, Least Squares, Moving Average, and Exponential Moving Average algorithms. |
BATS, BEST, EWMA, H-W, LS, MA | True or False | True |
Periodicity | MainDataClass.period
Periodicity of the history passed and the mask information. This represents the repeating nature of the data for predicting seasonal influences (for example, Months = 12/13, Weeks = 52, Quarters = 4, and so on ). |
All | Holt-Winters and BATS algorithm: 4 (quarterly data), 12, 13 (monthly data), 52 (weekly data), 7 and 365 (daily data). For all other algorithms, period = 0 is valid. | 12 (Months), 52 (Weeks) |
Random number seed | Possible values:
Note: This is applicable when option is set to On.
|
Best where one of ML Train-Test randomization, ML Cross-Validation or ML full dataset randomization = True | Integer | -1 |
Recent History | ModelDataClass.recentHistory Indicates the number of recent history periods to check if the items have any sales history. If the items have no sales history for the number of periods specified in the parameter, the engine does not return forecast for the periods and a recent History Exception is flagged/indicated by the engine. |
All | Integer >= 0, based on Periodicity | No default set in the engine |
Routine Regression Discount | BatEngineDataClass.trendDiscount This is used to increase or decrease the influence (weighting or rate of decay) of the new observation on the regression component of the BATS model. If discount factor tends to 1, the model become more dynamic whereas if tends to 0, the model become less dynamic. |
BATS | 0 =< x < 1 | 0 |
Routine Seasonal Discount | BatEngineDataClass.seasonalDiscount This is used to increase or decrease the influence (weighting or rate of decay) of the new observation on the seasonal component of the BATS model. If discount factor tends to 1, the model become more dynamic whereas if tends to 0, the model become less dynamic. |
BATS | 0 =< x < 1 | 0 |
Routine Trend Discount | BatEngineDataClass.trendDiscount This used increase or decrease the influence (weighting or rate of decay) of the new observation on the trend component of the BATS model. If discount factor tends to 1, the model become more dynamic whereas if tends to 0, the model become less dynamic. |
BATS | 0 =< x < 1 | 0 |
Routine Variance Discount | BatEngineDataClass.varianceDiscount This used increase or decrease the influence (weighting or rate of decay) of the new observation on the variance component of the BATS model. If discount factor tends to 1, the model become more dynamic whereas if tends to 0, the model become less dynamic. |
BATS | 0 =< x < 1 | 0 |
Run Length Limit | BatsEngineDataClass.runLengthLimit Defines the number of periods to be monitored for significant shifts in the level and/or the variance, and the maximum length a tracking signal can run before the tracking signal is flagged (If not flagged already). When a tacking signal is detected, the item/location combination is written to Tracking Signal Exception, where mapped. This is used in BATS monitoring. |
BATS | Positive integer | 4 |
Scale Inflation Factor | BatsEngineDataClass.scaleInflationFactor The factors used in to develop an alternative model to monitor the increase in the estimation of variance. This is used in BATS monitoring. |
BATS | 0.001-100 | 20 |
Scale inflation threshold | BatsEngineDataClass.scaleInflationThreshold The minimum allowed value for the variance Bayes factor before a tracking signal is activated. If the Bayes factor falls below this threshold, the tracking signal process is activated. This is used in BATS monitoring. |
BATS | 0 < x <= 1 | 0.01 |
Scale smoothing coefficient | ModelDataClass.lambda The scale smoothing coefficient for the Robust Holt-Winters algorithm. This is used to increase or decrease the influence of the forecast error on the scale component of the Robust Holt-Winters model. When the coefficient is 0, the forecast error has no influence on the scale of the model. When the coefficient is 1, the forecast error has a significant effect on the scale of the model making the same unstable. It is recommended that this figure be set to 0.1 and not modified. |
Best, H-W | 0 < x <= 1 | 0.1 |
Seasonal smoothing coefficient | ModelDataClass.gamma
This represents the seasonal smoothing coefficient for the Holt-Winters algorithm. This is used to increase or decrease the influence of the new observation on the relevant seasonal index of the Holt-Winters model. When the coefficient is 0, the new observation does not influence the relevant seasonal index of the model. When the coefficient is 1, the new observation becomes the relevant seasonal index (after the influence of the level is removed). Note: When the optimize macro parameter = TRUE, the engine
applies several values using the values that produce the model with the
lowest value of the chosen decision criteria.
|
Best, H-W (Optimization = TRUE) | 0 < x <= 1 | 0.4 |
Seasonal Type | ModelDataClass.SeasonalType This determines the type of seasonality to be used for Holt-Winters models, for example, additive or multiplicative . |
Best, BATS, H-W | NONE, ADDITIVE, MULTIPLICATIVE | NONE |
Short History | ModelDataClass.shortHistoryLength Stores the minimum length of history required for performing the model fit. The history length must be equal or greater than the specified Short History parameter. The user defined masks are removed before the test. |
All, except EVO | Integer > 0 | 0 |
SMP Gap discount factor | BatsEngineDataClass.smpDiscount Stores the discount factor used to smooth the level in BATS for SMPs. This eases the process of estimating the current length of time between sales events. |
BATS | 0 =< x < 1 | 0.2 |
Step Change Exception Horizon | Determine the history horizon in the Step Change Exception test at the period level of the calculated forecast (For example, number of months, if Period Level = Months). Step Changes is set for the full history, however only if there is a step change within the most recent periods covering the exception horizon is flagged as a static alert (at pconst). If not specified, there is no limit . |
BEST, H-W | Positive integer | Null |
Step Change Maximum Run Length | ATTEngineDataClass.stepChangeMaximumRunLength Contains the maximum number of contiguous outliers required to trigger a step change in the Holt-Winters algorithm. All the outliers must be in the same direction. |
BEST, H-W | Integer | 3 |
Tracking Exception Horizon |
Determine the history horizon in the Tracking Exception test at the period level of the calculated forecast (For example, number of months, if Period Level = Months). Tracking Signals are set for the full history, however only if there is a tracking signal within the most recent periods covering the exception horizon is flagged as a static alert (at pconst). |
BATS, BEST, EWMA, H-W, LS, MA | Positive Integer | Null |
Tracking Control Limit | TrackingSignalDataClass.controlLimit Determine the control limit for tracking, when the tracking is set to On. The value 0.99 effectively turns tracking signal detection off. |
BEST, EWMA, H-W, LS, MA | 0.8, 0.9, 0.95, 0.96, 0.97, 0.98, 0.99 | 0.99 |
Tracking Type | TrackingSignalDataClass.type Determine the tracking signal strategy used when the tracking is set to On. |
BEST, EWMA, H-W, LS, MA | NOTRACKING, SIMPLETRACKINGSIGNAL, BROWNSCUSUMTRACKINGSIGNAL, TRIGGSSMOOTHEDTRACKINGSIGNAL, AUTOCORRELATIONTRACKINGSIGNAL | NOTRACKING |
Trend smoothing coefficient | ModelDataClass.beta This represents the trend smoothing coefficient for the Holt-Winters algorithm. This is used to increase or decrease the influence of the level on the trend component of the Holt-Winters model. When the coefficient is 0, the difference between the new and old levels does not influence the trend of the model. When the coefficient is 1, the difference between the new and old levels is the trend. Note: When the optimize macro parameter = TRUE, the engine
applies several values using the values that produce the model with the
lowest value of the chosen decision criteria.
|
Best, H-W | 0 < x <= 1 | 0 |
Trim factor | Indicates the number of extreme values to be removed when
running the Trimmed Mean technique of Forecast Combining. This represents a
one-sided value that is when you remove the first and last values, x
=1. Note: This is applicable when option is set to On.
|
Best and Classic Combining set to On. | Positive Integer | 1 |
Winsorizing factor | Indicates the number of extreme values to replace when running the Winsizoring technique. This represents a one-sided value that is when you remove the first and last values, x =1. | Best and Classic Combining set to On. | Positive Integer | 1 |
Weighted AIC Maximum | ForecastingConstants.AICMAXIMUM Indicates the maximum difference from the lowest AIC value for a technique to be included in the weighing calculation. This is used in Weighted AIC technique and applicable when option is set to On. |
Best and Classic Combining set to On. | Positive Decimal | 4 |
- The Advanced Traditional Techniques engine requires an additional horizon (ForecastDataClass.horizon_) parameter, which is used from the Cycle.FutureHorizon parameter. This is applied to all the items or locations, or both. This is done as part of the process, when calling the Forecast Engine.
- The application performs a validation on the parameters, prior to calling the forecast engine. The item and location combinations using invalid parameter settings are rejected. The code list and invalid parameters are specified in the audit log entry for the forecast engine, in the attached discard log.
- Algorithm,
SeasonalType, and ModelForm work in tandem with each other. The possible
combinations are (in order of Algorithm, SeasonalType, and ModelForm):
LEASTSQUARES, NONE, LINEAR MOVINGAVERAGE, NONE, CONSTANT EXPONENTIALMOVINGAVERAGE, NONE, CONSTANT CROSTONS, NONE, CONSTANT HOLTWINTERS, NONE, CONSTANT HOLTWINTERS, NONE, LINEAR HOLTWINTERS, ADDITIVE, SEASONAL HOLTWINTERS, MULTIPLICATIVE, SEASONAL.