AICmodel: Akaike's Information Criterion (AIC)

View source: R/AICmodel.R

AICmodelR Documentation

Akaike's Information Criterion (AIC)


this function permits the estimation of the AIC for models for which the function 'AIC' from the 'stats' package does not work.


AICmodel(model = NULL, residuals = NULL, np = NULL)



if provided, it is an R object from where the residuals and model parameters can be retrieved using resid(model) and coef(model), respectively.


if provided, it is numerical vector with the residuals: residuals = observed.values - predicted.values, where predicted values are estimated from the model. If the parameter 'model' is not provided, then this parameter must be provided.


number of model parameters. If the parameter 'model' is not provided, then 'np' and 'residuals' must be provided.


if for a given model 'm' AIC(m) works, then AICmodel(m) = AIC(m).


AIC numerical value


## Build a set of point holding an exponential decay
## and adding random noise.
x = runif(100, 1, 5)
y = 2 * exp(-0.5 * x) + runif(100, 0, 0.1)
plot(x, y)

## Non-linear regression
nlm <- nls(Y ~ a * exp( b * X), data = data.frame(X=x, Y=y),
            start=list(a=1.5, b=-0.7),
            control=nls.control(maxiter=10^4, tol=1e-05),

## Estimations of Akaike information criteria given by 'AIC' function
## from stats' R package and from 'AICmodel' function are equal.
round(AICmodel(nlm), 3) == round(AIC(nlm), 3)

## Now, using residuals from the fitted model:
res = y - coef(nlm)[1] * exp(coef(nlm)[2] * x)

round(AICmodel(residuals = res, np = 2), 3) == round(AIC(nlm), 3)

genomaths/usefr documentation built on April 18, 2023, 3:35 a.m.