# extractAIC

##### Extract AIC from a Fitted Model

Computes the (generalized) Akaike **A**n **I**nformation
**C**riterion for a fitted parametric model.

- Keywords
- models

##### Usage

`extractAIC(fit, scale, k = 2, …)`

##### Arguments

- fit
fitted model, usually the result of a fitter like

`lm`

.- scale
optional numeric specifying the scale parameter of the model, see

`scale`

in`step`

. Currently only used in the`"lm"`

method, where`scale`

specifies the estimate of the error variance, and`scale = 0`

indicates that it is to be estimated by maximum likelihood.- k
numeric specifying the ‘weight’ of the

*equivalent degrees of freedom*(\(\equiv\)`edf`

) part in the AIC formula.- …
further arguments (currently unused in base R).

##### Details

This is a generic function, with methods in base R for classes
`"aov"`

, `"glm"`

and `"lm"`

as well as for
`"negbin"`

(package MASS) and `"coxph"`

and
`"survreg"`

(package survival).

The criterion used is
$$AIC = - 2\log L + k \times \mbox{edf},$$
where \(L\) is the likelihood and `edf`

the equivalent degrees
of freedom (i.e., the number of free parameters for usual parametric
models) of `fit`

.

For linear models with unknown scale (i.e., for `lm`

and
`aov`

), \(-2\log L\) is computed from the
*deviance* and uses a different additive constant to
`logLik`

and hence `AIC`

. If \(RSS\)
denotes the (weighted) residual sum of squares then `extractAIC`

uses for \(- 2\log L\) the formulae \(RSS/s - n\) (corresponding
to Mallows' \(C_p\)) in the case of known scale \(s\) and
\(n \log (RSS/n)\) for unknown scale.
`AIC`

only handles unknown scale and uses the formula
\(n \log (RSS/n) + n + n \log 2\pi - \sum \log w\)
where \(w\) are the weights. Further `AIC`

counts the scale
estimation as a parameter in the `edf`

and `extractAIC`

does not.

For `glm`

fits the family's `aic()`

function is used to
compute the AIC: see the note under `logLik`

about the
assumptions this makes.

`k = 2`

corresponds to the traditional AIC, using ```
k =
log(n)
```

provides the BIC (Bayesian IC) instead.

Note that the methods for this function may differ in their
assumptions from those of methods for `AIC`

(usually
*via* a method for `logLik`

). We have already
mentioned the case of `"lm"`

models with estimated scale, and
there are similar issues in the `"glm"`

and `"negbin"`

methods where the dispersion parameter may or may not be taken as
‘free’. This is immaterial as `extractAIC`

is only used
to compare models of the same class (where only differences in AIC
values are considered).

##### Value

A numeric vector of length 2, with first and second elements giving

the ‘**e**quivalent **d**egrees of **f**reedom’
for the fitted model `fit`

.

the (generalized) Akaike Information Criterion for `fit`

.

##### Note

This function is used in `add1`

, `drop1`

and `step`

and the similar functions in package
MASS from which it was adopted.

##### References

Venables, W. N. and Ripley, B. D. (2002)
*Modern Applied Statistics with S.*
New York: Springer (4th ed).

##### See Also

##### Examples

`library(stats)`

```
# NOT RUN {
utils::example(glm)
extractAIC(glm.D93) #>> 5 15.129
# }
```

*Documentation reproduced from package stats, version 3.6.1, License: Part of R 3.6.1*