Bates-Granger model weights
Computes empirical weights based on out of sample forecast variances, following Bates and Granger (1969).
BGWeights(object, ..., data, force.update = FALSE)
object, ... |
two or more fitted |
data |
a data frame containing the variables in the model. |
force.update |
if |
Bates-Granger model weights are calculated using prediction covariance. To
get the estimate of prediction covariance, the models are fitted to
randomly selected half of data
and prediction is done on the
remaining half.
These predictions are then used to compute the variance-covariance between
models, Σ. Model weights are then calculated as
w_BG = (1' Σ⁻¹ 1)⁻¹ 1 Σ⁻¹
,
where 1 a vector of 1-s.
Bates-Granger model weights may be outside of the [0,1] range, which may cause the averaged variances to be negative. Apparently this method works best when data is large.
The function returns a numeric vector of model weights.
Carsten Dormann, Kamil Bartoń
Bates, J. M. & Granger, C. W. J. (1969) The combination of forecasts. Journal of the Operational Research Society, 20: 451-468.
Other model.weights: bootWeights
,
cos2Weights
,
jackknifeWeights
,
stackingWeights
fm <- glm(Prop ~ mortality + dose, family = binomial, Beetle, na.action = na.fail) models <- lapply(dredge(fm, evaluate = FALSE), eval) ma <- model.avg(models) # this produces warnings because of negative variances: set.seed(78) Weights(ma) <- BGWeights(ma, data = Beetle) coefTable(ma, full = TRUE) # SE for prediction is not reliable if some or none of coefficient's SE # are available predict(ma, data = test.data, se.fit = TRUE) coefTable(ma, full = TRUE)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.