This function computes the fuzzy rule-based ensemble of time-series forecasts. Several forecasting methods are used to predict future values of given time-series and a weighted sum is computed from them with weights being determined from a fuzzy rule base.
frbe(d, h = 10)
A source time-series in the ts time-series format. Note that the frequency of the time-series must to be set properly.
A forecasting horizon, i.e. the number of values to forecast.
This function computes the fuzzy rule-based ensemble of time-series forecasts. The evaluation comprises of the following steps:
Several features are extracted from the given time-series
length of the time-series;
strength of trend;
strength of seasonality;
frequency. These features are used later to infer weights of the forecasting methods.
Several forecasting methods are applied on the given time-series
obtain forecasts. Actually, the following methods are used:
ARIMA - by calling
Exponential Smoothing - by calling
Random Walk with Drift - by calling
Theta - by calling [forecast::thetaf().
Computed features are input to the fuzzy rule-based inference mechanism
which yields into weights of the forecasting methods. The fuzzy rule base is
hardwired in this package and it was obtained by performing data mining with
the use of the
A weighted sum of forecasts is computed and returned as a result.
Result is a list of class
frbe with the following elements:
features - a data frame with computed features of the given time-series;
forecasts - a data frame with forecasts to be ensembled;
weights - weights of the forecasting methods as inferred from the features
and the hard-wired fuzzy rule base;
mean - the resulting ensembled forecast (computed as a weighted sum
Štěpnička, M., Burda, M., Štěpničková, L. Fuzzy Rule Base Ensemble Generated from Data by Linguistic Associations Mining. FUZZY SET SYST. 2015.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# prepare data (from the forecast package) library(forecast) horizon <- 10 train <- wineind[-1 * (length(wineind)-horizon+1):length(wineind)] test <- wineind[(length(wineind)-horizon+1):length(wineind)] # perform FRBE f <- frbe(ts(train, frequency=frequency(wineind)), h=horizon) # evaluate FRBE forecasts evalfrbe(f, test) # display forecast results f$mean
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.