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 <[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. >> >> > > > > > ------------------------------------------------------------------------ > > ______________________________________________ > 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. > -- 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 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ 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.