Functions to computes Akaike's information criterion (AIC), the second-order AIC (AICc), as well as their quasi-likelihood counterparts (QAIC, QAICc).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | ```
AICc(mod, return.K = FALSE, second.ord = TRUE, nobs = NULL, ...)
## S3 method for class 'aov'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'betareg'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'clm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'clmm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'coxme'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'coxph'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'fitdist'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'fitdistr'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'glm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, c.hat = 1, ...)
## S3 method for class 'gls'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'gnls'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'hurdle'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'lavaan'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'lm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'lme'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'lmekin'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'maxlikeFit'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, c.hat = 1, ...)
## S3 method for class 'mer'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'merMod'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'multinom'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, c.hat = 1, ...)
## S3 method for class 'nlme'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'nls'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'polr'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'rlm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'survreg'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
## S3 method for class 'unmarkedFit'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, c.hat = 1, ...)
## S3 method for class 'vglm'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, c.hat = 1, ...)
## S3 method for class 'zeroinfl'
AICc(mod, return.K = FALSE, second.ord = TRUE,
nobs = NULL, ...)
``` |

`mod` |
an object of class |

`return.K` |
logical. If |

`second.ord` |
logical. If |

`nobs` |
this argument allows to specify a numeric value other than total
sample size to compute the AICc (i.e., |

`c.hat` |
value of overdispersion parameter (i.e., variance inflation factor) such
as that obtained from |

`...` |
additional arguments passed to the function. |

`AICc`

computes one of the following four information criteria:

Akaike's information criterion (AIC, Akaike 1973),

*-2 *
log-likelihood + 2 * K,*

where the log-likelihood is the maximum
log-likelihood of the model and *K* corresponds to the number of
estimated parameters.

Second-order or small sample AIC (AICc, Sugiura 1978, Hurvich and Tsai 1991),

*-2 * log-likelihood + 2 * K * (n/(n - K - 1)),*

where *n* is the sample size of the data set.

Quasi-likelihood AIC (QAIC, Burnham and Anderson 2002),

*QAIC =
\frac{-2 * log-likelihood}{c-hat} + 2 * K,*

where *c-hat* is the
overdispersion parameter specified by the user with the argument
`c.hat`

.

Quasi-likelihood AICc (QAICc, Burnham and Anderson 2002),

*QAIC =
\frac{-2 * log-likelihood}{c-hat} + 2 * K * (n/(n - K - 1))*

.

Note that AIC and AICc values are meaningful to select among
`gls`

or `lme`

models fit by maximum likelihood. AIC and
AICc based on REML are valid to select among different models that
only differ in their random effects (Pinheiro and Bates 2000).

`AICc`

returns the AIC, AICc, QAIC, or QAICc, or the number of
estimated parameters, depending on the values of the arguments.

The actual (Q)AIC(c) values are not really interesting in themselves, as they depend directly on the data, parameters estimated, and likelihood function. Furthermore, a single value does not tell much about model fit. Information criteria become relevant when compared to one another for a given data set and set of candidate models.

Marc J. Mazerolle

Akaike, H. (1973) Information theory as an extension of the maximum
likelihood principle. In: *Second International Symposium on
Information Theory*, pp. 267–281. Petrov, B.N., Csaki, F., Eds,
Akademiai Kiado, Budapest.

Anderson, D. R. (2008) *Model-based Inference in the Life
Sciences: a primer on evidence*. Springer: New York.

Burnham, K. P., Anderson, D. R. (2002) *Model Selection and
Multimodel Inference: a practical information-theoretic
approach*. Second edition. Springer: New York.

Burnham, K. P., Anderson, D. R. (2004) Multimodel inference:
understanding AIC and BIC in model selection. *Sociological
Methods and Research* **33**, 261–304.

Dail, D., Madsen, L. (2011) Models for estimating abundance from
repeated counts of an open population. *Biometrics* **67**,
577–587.

Hurvich, C. M., Tsai, C.-L. (1991) Bias of the corrected AIC
criterion for underfitted regression and time series
models. *Biometrika* **78**, 499–509.

MacKenzie, D. I., Nichols, J. D., Lachman, G. B., Droege, S., Royle,
J. A., Langtimm, C. A. (2002) Estimating site occupancy rates when
detection probabilities are less than one. *Ecology* **83**,
2248–2255.

MacKenzie, D. I., Nichols, J. D., Hines, J. E., Knutson, M. G.,
Franklin, A. B. (2003) Estimating site occupancy, colonization, and
local extinction when a species is detected imperfectly. *Ecology*
**84**, 2200–2207.

Pinheiro, J. C., Bates, D. M. (2000) *Mixed-effect models in S and
S-PLUS*. Springer Verlag: New York.

Royle, J. A. (2004) *N*-mixture models for estimating population
size from spatially replicated counts. *Biometrics* **60**,
108–115.

Sugiura, N. (1978) Further analysis of the data by Akaike's
information criterion and the finite corrections. *Communications
in Statistics: Theory and Methods* **A7**, 13–26.

`AICcCustom`

, `aictab`

, `confset`

,
`importance`

, `evidence`

, `c_hat`

,
`modavg`

, `modavgShrink`

,
`modavgPred`

, `useBIC`

,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ```
##cement data from Burnham and Anderson (2002, p. 101)
data(cement)
##run multiple regression - the global model in Table 3.2
glob.mod <- lm(y ~ x1 + x2 + x3 + x4, data = cement)
##compute AICc with full likelihood
AICc(glob.mod, return.K = FALSE)
##compute AIC with full likelihood
AICc(glob.mod, return.K = FALSE, second.ord = FALSE)
##note that Burnham and Anderson (2002) did not use full likelihood
##in Table 3.2 and that the MLE estimate of the variance was
##rounded to 2 digits after decimal point
##compute AICc for mixed model on Orthodont data set in Pinheiro and
##Bates (2000)
## Not run:
require(nlme)
m1 <- lme(distance ~ age, random = ~1 | Subject, data = Orthodont,
method= "ML")
AICc(m1, return.K = FALSE)
## End(Not run)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.