Skip to content

AIC v. extractAIC

2 messages · Ryan Briscoe Runquist, Ben Bolker

#
Hello,

I am using a simple linear model and I would like to get an AIC value.  I
came across both AIC() and extractAIC() and I am not sure which is best to
use.  I assumed that I should use AIC for a glm and extractAIC() for lm,
but if I run my model in glm the AIC value is the same if I use AIC() on an
lm object.  What might be going on?  Did I interpret these functions
incorrectly?

Thanks,
Ryan


~~~~~~~~~~~~~~~~~~
Ryan D. Briscoe Runquist
Population Biology Graduate Group
University of California, Davis
rdbriscoe at ucdavis.edu
#
Ryan Briscoe Runquist wrote:
The documentation for these functions does explain what's going on,
albeit fairly tersely.  The bottom line is that you should be OK with either
one, provided that you stick to one or the other.

set.seed(1001)
x = runif(100)
y = 1 + 2*x+3*x^2+rnorm(100,sd=0.02)

lm1 = lm(y~x)
lm2 = lm(y~x+I(x^2))

## different
AIC(lm1,lm2)
extractAIC(lm1)
extractAIC(lm2)

## the same
AIC(lm1)-AIC(lm2)
extractAIC(lm1)[2]-extractAIC(lm2)[2]

lm3 = glm(y~x)
lm4 = glm(y~x+I(x^2))

## the same
AIC(lm4)
extractAIC(lm4)