Re: [R] Calculation of AIC BIC from mle

From: Martin Maechler <>
Date: Mon 05 Jun 2006 - 20:04:32 EST

>>>>> "Rainer" == Rainer M KRug <>
>>>>> on Mon, 05 Jun 2006 10:22:02 +0200 writes:

    Rainer> R 2.3.0, all packages up to date     Rainer> Linux, SuSE 10.0

    Rainer> Hi

    Rainer> I want to calculate AIC or BIC from several results from mle calculation.

    Rainer> I found the AIC function, but it does not seem to work with objects of
    Rainer> class mle -
    Rainer> If I execute the following:
    Rainer> ml1 <- mle(...)
    Rainer> AIC(ml1)

    Rainer> I get the following error messale:     Rainer> Error in logLik(object) : no applicable method for "logLik"

which is really not helpful as error message, since it is *wrong*: There is a logLik(.) method for "mle" objects, and it even works.

There's some embarassing bug here, since if you quickly look at the 'stats4' package source, it's very clear that it was designed to have AIC(), BIC(), logLik() all working, but only the last one does.

    Rainer> Therefore I am using the following to calculate the AIC:

    Rainer> #AICmle calculate AIC from mle object
    Rainer> AICmle <- function( m, k=2)
    Rainer> {
    Rainer> lL <- logLik(m)
    Rainer> edf <- attr(lL, "df")
    Rainer> LL <- lL[1]
    Rainer> - 2 * LL + k * edf
    Rainer> }

    Rainer> 1) Why is AIC not working with objects of class mle - am I doing     Rainer> something wrong, is it a bug or by design?

a bug.

    Rainer> 2) Just for confirmation - is my calculation of AIC correct?

it looks so, but I didn't check.
Martin mailing list PLEASE do read the posting guide! Received on Mon Jun 05 20:12:34 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 06 Jun 2006 - 02:10:27 EST.

Mailing list information is available at Please read the posting guide before posting to the list.