BGWeights | R Documentation |
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){^-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.
A numeric vector of model weights.
For matrix inversion, MASS::ginv()
is more stable near singularities
than solve
. It will be used as a fallback if solve
fails and
MASS is available.
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.
Dormann, C. et al. (2018) Model averaging in ecology: a review of Bayesian, information-theoretic, and tactical approaches for predictive inference. Ecological Monographs, 88, 485–504.
Weights
, model.avg
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.