[R] Calculation of AIC BIC from mle

Rainer M Krug rkrug at sun.ac.za
Mon Jun 5 13:37:19 CEST 2006


Thanks a lot for your and Martin's help - I understand now why it is not
working and am using AIC(logLik(ml1)).

Thanks

Rainer


Prof Brian Ripley wrote:
> You are mixing S3 and S4 classes and generics here.  AIC(logLik(ml1))
> will work.
> 
> This a namespace issue: stats4 contains a version of logLik, but the
> default method for AIC is from stats, and so dispatches on stats::logLik
> and not stats4::logLik.  There is something fundamentally unsatisfactory
> about converting S3 generics to S4 generics where namespaces are involved.
> 
> I have put a workaround in R-devel.
> 
> On Mon, 5 Jun 2006, Rainer M KRug wrote:
> 
>> R 2.3.0, all packages up to date
>> Linux, SuSE 10.0
>>
>> Hi
>>
>> I want to calculate AIC or BIC from several results from mle calculation.
>>
>> I found the AIC function, but it does not seem to work with objects of
>> class mle -
>> If I execute the following:
>> ml1 <- mle(...)
>> AIC(ml1)
>>
>> I get the following error messale:
>> Error in logLik(object) : no applicable method for "logLik"
>>
>> Therefore I am using the following to calculate the AIC:
>>
>> #AICmle calculate AIC from mle object
>> AICmle <- function( m, k=2)
>> {
>>     lL <- logLik(m)
>>     edf <- attr(lL, "df")
>>     LL <- lL[1]
>>     - 2 * LL + k * edf
>> }
>>
>> 1) Why is AIC not working with objects of class mle - am I doing
>> something wrong, is it a bug or by design?
>>
>> 2) Just for confirmation - is my calculation of AIC correct?
> 
> Not quite.  The correct function is
> 
>> stats:::AIC.logLik
> function (object, ..., k = 2)
> -2 * c(object) + k * attr(object, "df")
> <environment: namespace:stats>
> 


-- 
Rainer M. Krug, Dipl. Phys. (Germany), MSc Conservation
Biology (UCT)

Department of Conservation Ecology and Entomology
University of Stellenbosch
Matieland 7602
South Africa

Tel:		+27 - (0)72 808 2975 (w)
Fax:		+27 - (0)21 808 3304
Cell:		+27 - (0)83 9479 042

email:	RKrug at sun.ac.za
      	Rainer at krugs.de



More information about the R-help mailing list