comb_CLS {ForecastComb} | R Documentation |
Constrained Least Squares Forecast Combination
Description
Computes forecast combination weights using constrained least squares (CLS) regression.
Usage
comb_CLS(x)
Arguments
x |
An object of class 'foreccomb'. Contains training set (actual values + matrix of model forecasts) and optionally a test set. |
Details
The function integrates the constrained least squares (CLS) forecast combination implementation of the ForecastCombinations package into ForecastComb. The implementation has improved robustness regarding multicollinearity.
Compared to the ordinary least squares forecast combination
method, CLS forecast combination has the additional
requirement that the weights, \mathbf{w}^{CLS} = (w_1, \ldots, w_N)'
, sum up to 1 and that there is no intercept. That is,
the combinations of comb_CLS
are affine combinations.
This method was first introduced by Granger and Ramanathan (1984). The general appeal of the method is its ease of interpretation (the weights can be interpreted as percentages) and often produces better forecasts than the OLS method when the individual forecasts are highly correlated. A disadvantage is that if one or more individual forecasts are biased, this bias is not corrected through the forecast combination due to the lack of an intercept.
In addition to the version presented by Granger and Ramanathan (1984), this variant of the method adds the restriction that combination weights must be non-negative, which has been found to be almost always outperform unconstrained OLS by Aksu and Gunter (1992) and was combined with the condition of forcing the weights to sum up to one by Nowotarski et al. (2014), who conclude that even though the method provides a suboptimal solution in-sample, it almost always produces better forecasts than unrestricted OLS out-of-sample.
The results are stored in an object of class 'foreccomb_res', for which separate plot and summary functions are provided.
Value
Returns an object of class foreccomb_res
with the following components:
Method |
Returns the best-fit forecast combination method. |
Models |
Returns the individual input models that were used for the forecast combinations. |
Weights |
Returns the combination weights obtained by applying the combination method to the training set. |
Fitted |
Returns the fitted values of the combination method for the training set. |
Accuracy_Train |
Returns range of summary measures of the forecast accuracy for the training set. |
Forecasts_Test |
Returns forecasts produced by the combination method for the test set. Only returned if input included a forecast matrix for the test set. |
Accuracy_Test |
Returns range of summary measures of the forecast accuracy for the test set. Only returned if input included a forecast matrix and a vector of actual values for the test set. |
Input_Data |
Returns the data forwarded to the method. |
References
Aksu, C., and Gunter, S. I. (1992). An Empirical Analysis of the Accuracy of SA, OLS, ERLS and NRLS Combination Forecasts. International Journal of Forecasting, 8(1), 27–43.
Granger, C., and Ramanathan, R. (1984). Improved Methods Of Combining Forecasts. Journal of Forecasting, 3(2), 197–204.
Nowotarski, J., Raviv, E., Tr\"uck, S., and Weron, R. (2014). An Empirical Comparison of Alternative Schemes for Combining Electricity Spot Price Forecasts. Energy Economics, 46, 395–412.
See Also
Forecast_comb
,
foreccomb
,
plot.foreccomb_res
,
summary.foreccomb_res
,
accuracy
Examples
obs <- rnorm(100)
preds <- matrix(rnorm(1000, 1), 100, 10)
train_o<-obs[1:80]
train_p<-preds[1:80,]
test_o<-obs[81:100]
test_p<-preds[81:100,]
data<-foreccomb(train_o, train_p, test_o, test_p)
comb_CLS(data)