Model averaging based on an information criterion.

`model.avg(object, ..., revised.var = TRUE)`# S3 method for default
model.avg(object, ..., beta = c("none", "sd", "partial.sd"),
rank = NULL, rank.args = NULL, revised.var = TRUE,
dispersion = NULL, ct.args = NULL)

# S3 method for model.selection
model.avg(object, subset, fit = FALSE, ..., revised.var = TRUE)

object

a fitted model object or a list of such objects, or a
`"model.selection"`

object. See ‘Details’.

…

for default method, more fitted model objects. Otherwise, arguments that are passed to the default method.

beta

indicates whether and how the component models' coefficients
should be standardized. See the argument's description in
`dredge`

.

rank

optionally, a rank function (returning an information criterion) to
use instead of `AICc`

, e.g. `BIC`

or `QAIC`

, may be
omitted if `object`

is a model list returned by `get.models`

or a `"model.selection"`

object. See ‘Details’.

rank.args

optional `list`

of arguments for the `rank`

function. If one is an expression, an `x`

within it is substituted
with a current model.

revised.var

logical, indicating whether to use revised formula for
standard errors. See `par.avg`

.

dispersion

the dispersion parameter for the family used. See
`summary.glm`

. This is used currently only with `glm`

,
is silently ignored otherwise.

ct.args

optional list of arguments to be passed to
`coefTable`

(besides `dispersion`

).

subset

see `subset`

method for
`"model.selection"`

object.

fit

if `TRUE`

, the component models are fitted using
`get.models`

. See ‘Details’.

An object of class `"averaging"`

is a list with components:

a `data.frame`

with log-likelihood, *IC*,
<U+0394>_IC and
‘Akaike weights’ for the component models.
Its attribute `"term.codes"`

is a named vector with numerical
representation of the terms in the row names of `msTable`

.

a `matrix`

of model-averaged coefficients.
“full” coefficients in first row, “subset” coefficients in
second row. See ‘Note’

a 3-dimensional `array`

of component models' coefficients,
their standard errors and degrees of freedom.

object of class `importance`

containing relative
importance values of each term (including interactions), calculated as a sum
of the *Akaike weights* over all of the models in which the term
appears.

a formula corresponding to the one that would be used in a single model. The formula contains only the averaged (fixed) coefficients.

the matched call.

The object has following attributes:

the rank function used.

optionally, a list of all component model objects. Only if the object was created with model objects (and not model selection table).

Corresponds to the function argument.

number of observations.

Corresponds to the function argument.

`model.avg`

may be used either with a list of models, or directly with a
`model.selection`

object (e.g. returned by `dredge`

). In the
latter case, the models from the model selection table are not evaluated
unless the argument `fit`

is set to `TRUE`

or some additional
arguments are present (such as `rank`

or `dispersion`

). This
results in much faster calculation, but has certain drawbacks, because the
fitted component model objects are not stored, and some methods (e.g.
`predict`

, `fitted`

, `model.matrix`

or `vcov`

) would not
be available with the returned object. Otherwise, `get.models`

is
called prior to averaging, and … are passed to it.

For a list of model types that are accepted see list of supported models.

`rank`

is found by a call to `match.fun`

and typically is
specified as a function or a symbol or a character string specifying a
function to be searched for from the environment of the call to lapply.
`rank`

must be a function able to accept model as a first argument and
must always return a numeric scalar.

Several standard methods for fitted model objects exist for class
`averaging`

, including `summary`

,
`predict`

, `coef`

, `confint`

,
`formula`

, and `vcov`

.

`coef`

, `vcov`

, `confint`

and `coefTable`

accept argument
`full`

that if set to `TRUE`

, the full model-averaged coefficients
are returned, rather than subset-averaged ones (when `full = FALSE`

,
being the default).

`logLik`

returns a list of `logLik`

objects
for the component models.

Burnham, K. P. and Anderson, D. R. (2002) *Model selection and multimodel
inference: a practical information-theoretic approach*. 2nd ed. New York,
Springer-Verlag.

Lukacs, P. M., Burnham K. P. and Anderson, D. R. (2009) *Model selection
bias and Freedman<U+2019>s paradox*. Annals of the Institute of Statistical Mathematics
62(1): 117<U+2013>125.

See `par.avg`

for more details of model averaged parameter
calculation.

`dredge`

, `get.models`

`AICc`

has examples of averaging models fitted by REML.

`modavg`

in package AICcmodavg, and
`coef.glmulti`

in package glmulti also perform model
averaging.

# NOT RUN { # Example from Burnham and Anderson (2002), page 100: fm1 <- lm(y ~ ., data = Cement, na.action = na.fail) (ms1 <- dredge(fm1)) #models with delta.aicc < 4 summary(model.avg(ms1, subset = delta < 4)) #or as a 95% confidence set: avgmod.95p <- model.avg(ms1, cumsum(weight) <= .95) confint(avgmod.95p) # } # NOT RUN { # The same result, but re-fitting the models via 'get.models' confset.95p <- get.models(ms1, cumsum(weight) <= .95) model.avg(confset.95p) # Force re-fitting the component models model.avg(ms1, cumsum(weight) <= .95, fit = TRUE) # Models are also fitted if additional arguments are given model.avg(ms1, cumsum(weight) <= .95, rank = "AIC") # } # NOT RUN { # } # NOT RUN { # using BIC (Schwarz's Bayesian criterion) to rank the models BIC <- function(x) AIC(x, k = log(length(residuals(x)))) model.avg(confset.95p, rank = BIC) # the same result, using AIC directly, with argument k # 'x' in a quoted 'rank' argument is substituted with a model object # (in this case it does not make much sense as the number of observations is # common to all models) model.avg(confset.95p, rank = AIC, rank.args = alist(k = log(length(residuals(x))))) # } # NOT RUN { # }

Run the code above in your browser using DataCamp Workspace