Learn R Programming

GeomComb (version 1.0)

comb_NG: Newbold/Granger (1974) Forecast Combination

Description

Computes forecast combination weights according to the approach by Newbold and Granger (1974) and produces forecasts for the test set, if provided.

Usage

comb_NG(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

Building on early research by Bates and Granger (1969), the methodology of Newbold and Granger (1974) also extracts the combination weights from the estimated mean squared prediction error matrix.

Suppose $y_t$ is the variable of interest, there are $N$ not perfectly collinear predictors, $f_t = (f_{1t}, \ldots, f_{Nt})'$, $\Sigma$ is the (positive definite) mean squared prediction error matrix of $f_t$ and $e$ is an $N * 1$ vector of $(1, \ldots, 1)'$.

Their approach is a constrained minimization of the mean squared prediction error using the normalization condition $e'w = 1$. This yields the following combination weights:

$$\mathbf{w}^{NG} = \frac{\Sigma^{-1}\mathbf{e}}{\mathbf{e}'\Sigma^{-1}\mathbf{e}}$$

The combined forecast is then obtained by:

$$\hat{y}_t = {\mathbf{f}_{t}}'\mathbf{w}^{NG}$$

While the method dates back to Newbold and Granger (1974), the variant of the method used here does not impose the prior restriction that $\Sigma$ is diagonal. This approach, called VC in Hsiao and Wan (2014), is a generalization of the original method.

References

Bates, J. M., and Granger, C. W. (1969). The Combination of Forecasts. Journal of the Operational Research Society, 20(4), 451--468.

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

Newbold, P., and Granger, C. W. J. (1974). Experience with Forecasting Univariate Time Series and the Combination of Forecasts. Journal of the Royal Statistical Society, Series A, 137(2), 131--165.

See Also

comb_BG, 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_NG(data)

Run the code above in your browser using DataLab