Learn R Programming

GeomComb (version 1.0)

comb_EIG2: Bias-Corrected Eigenvector Forecast Combination

Description

Computes forecast combination weights according to the bias-corrected eigenvector approach by Hsiao and Wan (2014) and produces forecasts for the test set, if provided.

Usage

comb_EIG2(x)

Arguments

x
An object of class foreccomb. Contains training set (actual values + matrix of model forecasts) and optionally a test set.

Value

Returns an object of class foreccomb_res with the following components: with the following components:

Details

The bias-corrected eigenvector approach builds on the idea that if one or more of the predictive models yield biased predictions, the accuracy of the standard eigenvector approach can be improved by eliminating the bias. The optimization procedure to obtain combination weights coincides with the standard eigenvector approach, except that it is applied to the centered MSPE matrix after extracting the bias (by subtracting the column means of the MSPE).

The combination weights are calculated as:

$$\mathbf{w}^{EIG2} = \frac{1}{\tilde{d}_l} \tilde{\mathbf{w}}^l$$

where $\tilde{d}_j$ and $\tilde{w}^j$ are defined analogously to $d_j$ and $w^j$ in the standard eigenvector approach, with the only difference that they correspond to the spectral decomposition of the centered MSPE matrix rather than the uncentered one.

The combined forecast is then obtained by:

$$\hat{y}_t = a + {\mathbf{f}_t}'\mathbf{w}^{EIG2}$$

where $a = E(y_t) - E(f_t)'w$ is the intercept for bias correction. If the actual series and the forecasts are stationary, the expectations can be approximated by the time series means, i.e. the intercept is obtained by subtracting the weighted sum of column means of the MSPE matrix from the mean of the actual series. Forecast combination methods including intercepts therefore usually require stationarity.

References

Hsiao, C., and Wan, S. K. (2014). Is There An Optimal Forecast Combination? Journal of Econometrics, 178(2), 294--309.

See Also

comb_EIG1, foreccomb, plot.foreccomb_res, summary.foreccomb_res, accuracy

Examples

Run this code
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_EIG2(data)

Run the code above in your browser using DataLab