Context
Demand Forecasting is a starting point in Supply Chain planning. It is used to project the demand that the business will receive from the market at different horizons. In SIMCEL the forecast can be generated using different models, all using as an input an unbiased historical demand, the Base Demand.
Type of Forecast Models/Algorithms in SIMCEL
Prophet:
Prophet is a time series forecasting algorithm developed by Meta (Facebook) that can be used for demand forecasting by decomposing time series data into trend, seasonality, and holiday components.
STL
STL (Seasonal-Trend decomposition procedure based on Loess) is a time series decomposition algorithm that can be used for demand forecasting by separating the time series data into three components: trend, seasonal, and residual.
AdaBoost (ADA)
AdaBoost (Adaptive Boosting) is a machine learning algorithm that can be used for demand forecasting by combining multiple weak learners (i.e., simple models) to make more accurate predictions. It works by iteratively adjusting the weights of the training data to focus on the most difficult cases and giving more weight to misclassified data points.
Random Forest (RF)
Random Forest is a machine learning algorithm that can be used for demand forecasting by building an ensemble of decision trees. It works by randomly selecting a subset of the input features and data points, and then growing multiple decision trees on the sub-sampled data. The algorithm then aggregates the predictions of the individual trees to produce a final forecast.
XGBoost (XGB)
XGBoost (Extreme Gradient Boosting) is a machine learning algorithm that can be used for demand forecasting. It is a more advanced version of the Gradient Boosting algorithm and is designed to handle large and complex datasets. XGBoost works by building an ensemble of weak decision trees and iteratively improving their performance by minimizing a loss function.
Extra Trees Regressor (ETR)
Extra Trees Regressor (ETR) is a machine learning algorithm that can be used for demand forecasting by constructing an ensemble of decision trees. It is similar to Random Forest but with some key differences in the way the trees are constructed.
Decision Trees (DT)
Decision Trees are a machine learning algorithm that can be used for demand forecasting by constructing a tree-like model of decisions and their possible consequences. Each internal node of the tree represents a decision based on one of the input features, and each leaf node represents a demand forecast.
Light Gradient-Boosting Machine (LightGBM)
LightGBM, a gradient-boosting framework, excels in handling large datasets and high-dimensional features with greater efficiency and less memory usage compared to XGBoost. Its distinctive leaf-wise tree growth algorithm allows for faster training and more accurate results, especially beneficial in time series forecasting. While XGBoost grows trees depth-wise and can be slower on large datasets, LightGBM's approach is more efficient on such data, often leading to faster execution with comparable or improved accuracy.
Naive forecasting
There are several different methods to do naive forecasting:
- Taking the previous lag for each time step in the forecast horizon, therefore creating a forecast that is the same with training data that has been shifted by -1 time step.
- Taking the value at the last time step (last observation) and propagating this value across the forecast horizon
- Incorporate seasonal information by taking the value at the previous lag = -N, where N is the seasonal period.
Naive forecasting methods are often used to provide a baseline for comparison with other forecasting algorithms.
Forecast strategies
To add explainability to forecasting, different strategies are applied to allow users to have more control over what kind of result they want to have:
- Recursive vs. Non-recursive forecast:
- Recursive forecasting: A model is trained to predict the next value, and if several values are being predicted, then each value is done at a time. After that, the modelβs predictions are used as the new training data, recomputing the features and predicting the next step. This forecasting approach is generally faster, however, bias in the forecast will be compounded and accuracy is generally lower.
- Non-recursive forecasting: If the goal is to predict N steps ahead, N different models would be trained, where each model is trained to predict the value at each specific step, i.e. one model predicts the next value, another one predicts the value of two steps ahead, and so on. This can be very time-consuming but can also provide better results.
- Target transform: This is a pre-processing technique where the βtargetβ (in the context of demand forecasting would be the Quantity) is transformed to eliminate or account for various factors, such as trend, seasonality, or to normalize data:
- Taking the difference at the seasonal period: This is done to account for seasonality. With this transformation step, the result will be able to capture seasonality better at the cost of some computational resources and run time.
