Re: [R] bug in lme4?

From: Renaud Lancelot <renaud.lancelot_at_gmail.com>
Date: Wed, 20 Aug 2008 14:41:13 +0200

Thank you very much !

Renaud

2008/8/20 Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>

> Renaud Lancelot wrote:
> > 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.
> >
> Looks like it should be fairly easy:
>
> Get rid of
> setMethod(f = "AIC", signature = "logLik", ...etc...
>
> Instead, define a (local) function, say AIC1(), and use that inside
>
> setMethod(f = "AIC", signature = "glimML", ....
>
> Redefining methods from stats is just a bad idea. Packages might protect
> themselves from it, but command-line behaviour of AIC(ll) is also affected.
>
>
> > Best regards,
> >
> > Renaud
> >
> > 2008/8/20 Martin Maechler <maechler_at_stat.math.ethz.ch>
> >
> >
> >>>>>>> <Antonio.Gasparrini_at_lshtm.ac.uk>
> >>>>>>> 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_at_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.
> >>
> >>
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > ______________________________________________
> > R-help_at_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.
> >
>
>
> --
> O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard_at_biostat.ku.dk) FAX: (+45) 35327907
>
>
>

-- 
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_at_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.

Received on Wed 20 Aug 2008 - 12:51:34 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 20 Aug 2008 - 14:33:46 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive