Computes empirical weights based on out of sample forecast variances, following Bates and Granger (1969).
BGWeights(object, ..., data, force.update = FALSE)
two or more fitted glm
objects, or a
list
of such, or an "averaging"
object.
a data frame containing the variables in the model.
if TRUE
, the much less efficient method of
updating glm
function will be used rather than directly via
glm.fit
. This only applies to glm
s, in
case of other model types update
is always used.
The function returns a numeric vector of model weights.
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,
Bates-Granger model weights may be outside of the
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
# NOT RUN {
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)
# }
Run the code above in your browser using DataLab