## 3 The Proposed Forecast Combination Methodology
We selected the Min-Max normalization method [86] as it is one of the most popular and comprehensible methods, in terms of performance of the examined systems, while several researchers showed that it produces better (if not equally good) results with high accuracy, compared to the other normalization methods [87,88]. In [88], the Min-Max was valued as the second-best normalization method in the backpropagation NN model, justifying our choice to deploy this method for data normalization. Moreover, since the FCM concepts use values within the range [0,1] for the conducted simulations and do not deal with real values, the selected method seemed to be proper for our study. Also, this normalization approach was previously used in [66,69]. Due to our intention to suggest a generic forecasting combination approach (with ANNs, FCMs, and their hybrid structures) able to be applied in any time series dataset, the following steps are thoroughly presented and executed. **Step 1. (Split Dataset)** We divided the original time series \(\mathrm{Y}=\left[y_{1},\;y_{2},y_{3},\;\ldots,y_{\mathrm{N}}\right]^{\mathrm{T}}\) into the in-sample training dataset \(\mathrm{Y}_{\mathrm{tr}}=\left[y_{1},\;y_{2},y_{3},\;\ldots,y_{\mathrm{N}_{tr} }\right]^{\mathrm{T}}\), the in  
\(\mathrm{Y_{bs}}=\left[\mathrm{y_{N_{in}+1}},\ \mathrm{y_{N_{in}+2}},\mathrm{y_{N_{in}+3}},\ \cdots,\mathrm{y_{N_{in}+N_{bs}}}\right]^{\mathrm{T}}\), so that \(N_{in}=N_{tr}+N_{vd}\) is the size of the total in-sample dataset and \(N_{in}+N_{bs}=N\), where \(N\) is the number of days, or weeks, or months, according to the short- or long-term prediction based on the time series horizon. **Step 2. (Resampling method/Bootstrapping)**. Let's consider \(k\) sets as training sets from the whole dataset every time. For example, in the monthly forecasting, we excluded one month every time from the initial in-sample dataset, starting from the first month of the time series values, and proceeding with next month till \(k=12\), (i.e., this means that 1 to 12 months were excluded from the initial in-sample dataset). Therefore, \(k\) subsets of training data were created and used for training. The remaining values of the in-sample dataset were used for validation, whereas the testing set remained the same. Figure 2 shows an example of this bootstrapping method for the ensemble SOGA-FCM approach. In particular, Figure 2 represents the individual forecasters' prediction values and their average error calculation, whereas, in Figure 2, the proposed forecasting combination approach for SOGA-FCM is depicted for both ensemble methods. If we needed to accomplish daily forecasting, then we preselected the number of days excluded at each subset \(k\). For the case of simplicity (as in the case of monthly forecasting), we could consider that one day was excluded at each sub-set from the initial in-sample dataset. The overall approach, including ANN, FCMs, and hybrid configurations of them, is illustrated in Figure 3. In Figure 3, the  
Figure 2: (**a**) Forecasting approach using individual forecasters of SOGA-FCM and mean average, (**b**) Example of the proposed forecasting combination approach for SOGA-FCM using ensemble methods. SOGA, structure optimization genetic algorithm; FCM, fuzzy cognitive map. four ensemble forecasters were produced after the validation process and used for testing through the proposed approach. **Step 3. ** We had \(n\) component forecasting models and obtained \(\hat{\Upsilon}_{\text{ts}}^{i}=\left[\hat{y}_{N_{\text{tr}}+1}^{i},\ \hat{y}_{N_{\text{tr}}+2}^{i},\dots,\hat{y}_{N_{\text{tr}}+N_{\text{ sol}}}^{i}\right]^{\text{T}}\) as the forecast of \(\Upsilon_{\text{ts}}\) through the \(i^{th}\) model. **Step 4. ** We implemented each model on \(\Upsilon_{\text{tr}}\) and used it to predict \(\Upsilon_{\text{vd}}\). Let \(\hat{\Upsilon}_{\text{vd}}^{i}=\left[\hat{y}_{N_{\text{tr}}+1}^{i},\ \hat{y}_{N_{\text{tr}}+2}^{i},\dots,\hat{y}_{N_{\text{tr}}+N_{\text{ sol}}}^{i}\right]^{\text{T}}\) be the prediction of \(\Upsilon_{\text{vd}}\) through the \(i^{th}\) model.