Dear all,

As the maintener of package aod, I thank you for bringing my attention on
this problem. I will try to alter the code in aod. However, I am not sure to
be able to do it right now.

Best regards,

Renaud

2008/8/20 Martin Maechler <[EMAIL PROTECTED]>

> >>>>>   <[EMAIL PROTECTED]>
> >>>>>     on Wed, 20 Aug 2008 03:03:29 +0100 writes:
>
>    > Dear all,
>    > I found a problem with 'lme4'. Basically, once you load the package
> 'aod' (Analysis of Overdispersed Data), the functions 'lmer' and 'glmer'
> don't work anymore:
>
>    > library(lme4)
>    > (fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy))
>    > (gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 |
> herd),
>    > family = binomial, data = cbpp))
>    > install.packages("aod")
>    > library(aod)
>    > (fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy))
>    > (gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 |
> herd),
>    > family = binomial, data = cbpp))
>
>    > Taking into account that this package is used to perform
>    > similar analyses, this could be a problem.
>
> It is a problem, and it *is* a bug;
> thank you for reporting it, Antonio.
>
> Since lme4 uses a NAMESPACE, it could and probably should make
> sure to protect itself from incompatible function redefinitions
> such as the one the  'aod' package "provides" :
>
> Arguably, the bug is really in package 'aod' rather than 'lme4':
> 'aod' redefines the AIC() method for 'logLik' objects in a not quite
> backward-compatible way:
>
> The standard method (S3 alas, in package 'stats') is
>
>   > stats:::AIC.logLik
>   function (object, ..., k = 2)
>   -2 * c(object) + k * attr(object, "df")
>   <environment: namespace:stats>
>
> The redefinition from package 'aod' is
>
>   > selectMethod(AIC, "logLik")
>   Method Definition:
>
>   function (object, ..., k = 2)
>   {
>       npar <- attr(object, "df")
>       nobs <- attr(object, "nobs")
>       c(AIC = -2 * c(object) + k * npar, AICc = -2 * c(object) +
>           k * npar + 2 * npar * (npar + 1)/(nobs - npar - 1))
>   }
>   <environment: 0x1cd22b80>
>
>   Signatures:
>           object
>   target  "logLik"
>   defined "logLik"
>
> which returns a (named) numeric vector of length 2,
> and the code in lme4 was expecting length 1.
>
> As a matter of fact, I even like the idea to extend AIC() to
> also compute newer versions of AIC; but probably 'aod' should
> have done so in a different way {maybe with an additional
> 'kind' argument to the method}.
>
> Martin
>
>    > All the best
>
>    > Antonio Gasparrini
>    > Public and Environmental Health Research Unit (PEHRU)
>    > London School of Hygiene & Tropical Medicine
>    > Keppel Street, London WC1E 7HT, UK
>    > Office: 0044 (0)20 79272406 - Mobile: 0044 (0)79 64925523
>    > http://www.lshtm.ac.uk/people/gasparrini.antonio (
> http://www.lshtm.ac.uk/pehru/ )
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Renaud LANCELOT
Département Systèmes Biologiques du CIRAD
CIRAD, Biological Systems Department

Campus International de Baillarguet
TA 30 / B
F34398 Montpellier
Tel +33 (0)4 67 59 37 17
Secr. +33 (0)4 67 59 37 37
Fax +33 (0)4 67 59 37 95

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to