
The package MuMIn contains functions to streamline information-theoretic model selection and carry out model averaging based on the information criteria.
The collection of functions includes:
dredge
performs automated model selection with subsets of the supplied ‘global’ model, and optional choices of other model properties (such as different link functions). The set of models may be generated either with ‘all possible’ combinations, or tailored according to the conditions specified.
pdredge
does the same, but can parallelize model fitting
process using a cluster.
model.sel
creates a model selection table from hand-picked models.
model.avg
calculates model averaged parameters, with standard errors and confidence intervals.
AICc
calculates second-order Akaike information criterion. Some other criterions are provided, see below.
stdize
, stdizeFit
, std.coef
,
partial.sd
can be used for standardization of data and model coefficients by Standard Deviation or Partial Standard Deviation.
For a complete list of functions, use library(help = "MuMIn")
.
By default, AICAIC
and BIC
in package stats, and
QAIC
, QAICc
, ICOMP
,
CAICF
, and Mallows' Cp in MuMIn. There is also
DIC
extractor for MCMC models, and QIC
for
GEE.
Most of R's common modelling functions are supported, for a full inventory see list of supported models.
Apart from the “regular” information criteria, model averaging can be performed
using various types of model weighting algorithms:
Bates-Granger,
bootstrapped,
cos-squared,
jackknife,
stacking, or
ARM.
These weighting functions apply mostly to glm
s.
Burnham, K. P. and Anderson, D. R (2002) Model selection and multimodel inference: a practical information-theoretic approach. 2nd ed. New York, Springer-Verlag.
# NOT RUN {
options(na.action = "na.fail") # change the default "na.omit" to prevent models
# from being fitted to different datasets in
# case of missing values.
fm1 <- lm(y ~ ., data = Cement)
ms1 <- dredge(fm1)
# Visualize the model selection table:
# }
# NOT RUN {
par(mar = c(3,5,6,4))
plot(ms1, labAsExpr = TRUE)
# }
# NOT RUN {
model.avg(ms1, subset = delta < 4)
confset.95p <- get.models(ms1, cumsum(weight) <= .95)
avgmod.95p <- model.avg(confset.95p)
summary(avgmod.95p)
confint(avgmod.95p)
# }
Run the code above in your browser using DataLab