[R-sig-ME] post hoc tests for glmmTMB

Fox, John jfox @ending from mcm@@ter@c@
Fri Nov 9 17:32:24 CET 2018


Hi Ben,

My apologies if you told me about this before and I forgot (because it does ring a bell).

I've taken a look at what you did and have some questions/comments: 

(1) I see that you have a component argument to determine what to test -- the conditional part of the model, the zero-inflated part, or the dispersion part. I'd allow multiple choices, like component=c("cond", "zi"), and consider making c("cond", "zi") the default. It should be easy to do this via a recursive call.

(2) I also see that you don't export a linearHypothesis.glmmTMB() method. I think that's a pity since it would be useful and shouldn't involve much more work.

Best,
 John

--------------------------------------
John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
Web: socialsciences.mcmaster.ca/jfox/




> -----Original Message-----
> From: Ben Bolker [mailto:bbolker using gmail.com]
> Sent: Friday, November 9, 2018 10:28 AM
> To: Fox, John <jfox using mcmaster.ca>; Aoibheann Gaughran <gaughra using tcd.ie>
> Cc: r-sig-mixed-models using r-project.org; Sandy Weisberg <sandy using umn.edu>;
> Brad Price (brad.price using mail.wvu.edu) <brad.price using mail.wvu.edu>
> Subject: Re: [R-sig-ME] post hoc tests for glmmTMB
> 
> 
>   The devel version of glmmTMB contains Anova methods for glmmTMB :
> 
> https://github.com/glmmTMB/glmmTMB/blob/master/glmmTMB/R/Anova.R
> 
>  cheers
>   Ben
> 
> On 2018-11-09 10:37 a.m., Fox, John wrote:
> > Dear Aoibheann,
> >
> > There is no specific Anova() method for "glmmTMB" objects, so the
> default method is invoked. This won't work because of the structure of
> "glmmTMB" models. I think that ideally one would want two tables of Wald
> tests of fixed effects, one for the conditional nonzero part of the
> model and one for the zero-inflation part of the model.
> >
> > This seems to me of sufficient interest that I'll look into writing
> "glmmTMB" methods for Anova() and for the linearHypothesis() function in
> the car package, on which Anova() depends. I can't promise, however,
> when I'll get to this.
> >
> > Best,
> >  John
> >
> > --------------------------------------
> > John Fox, Professor Emeritus
> > McMaster University
> > Hamilton, Ontario, Canada
> > Web: socialsciences.mcmaster.ca/jfox/
> >
> >
> >
> >> -----Original Message-----
> >> From: R-sig-mixed-models [mailto:r-sig-mixed-models-bounces using r-
> >> project.org] On Behalf Of Aoibheann Gaughran
> >> Sent: Friday, November 9, 2018 10:23 AM
> >> To: Ben Bolker <bbolker using gmail.com>
> >> Cc: r-sig-mixed-models using r-project.org
> >> Subject: Re: [R-sig-ME] post hoc tests for glmmTMB
> >>
> >> Great, thank you - I will keep plugging on. I will reconsider my use
> >> of the Anova function in car as well!
> >>
> >> On Fri, 9 Nov 2018 at 15:19, Ben Bolker <bbolker using gmail.com> wrote:
> >>
> >>>
> >>>   The point about Wald tests is correct, although their reliability
> >>> depends very much on context (they should be pretty good for tests
> >>> of fixed effects when the data set is reasonably large and predicted
> >>> probabilities/counts are not too extreme, i.e. not too close to zero
> >>> (counts) or 0/1 (probabilities)).
> >>>
> >>>   There are a lot of improvements in the development version with
> >>> respect to post hoc tests etc. on glmmTMB fits, as documented here:
> >>> <
> >>> https://github.com/glmmTMB/glmmTMB/blob/master/glmmTMB/vignettes/mod
> >>> el
> >>> _evaluation.rmd
> >>>>
> >>>
> >>>   If you can install the development version (see
> >>> https://github.com/glmmTMB/glmmTMB/blob/master/README.md), that
> >>> should help a lot.
> >>>
> >>>  If you can't, most of these improvements will probably get to CRAN
> >>> in the next week or two; we're planning a new release soon.
> >>>
> >>>   In any case, I think that running the following code should make
> >>> multcomp work with glmmTMB objects (not quite sure what that first
> >>> function is doing ... ???)
> >>>
> >>> glht_glmmTMB <- function (model, ..., component="cond") {
> >>>     glht(model, ...,
> >>>          coef. = function(x) fixef(x)[[component]],
> >>>          vcov. = function(x) vcov(x)[[component]],
> >>>          df = NULL)
> >>> }
> >>> modelparm.glmmTMB <- function (model, coef. = function(x)
> >>> fixef(x)[[component]],
> >>>                                vcov. = function(x)
> >> vcov(x)[[component]],
> >>>                                df = NULL, component="cond", ...) {
> >>>     multcomp:::modelparm.default(model, coef. = coef., vcov. =
> vcov.,
> >>>                         df = df, ...) }
> >>>
> >>> ## example
> >>> g1 <- glht(cbpp_b1, linfct = mcp(period = "Tukey"))
> >>>
> >>>
> >>>
> >>> On 2018-11-09 9:42 a.m., Guillaume Adeux wrote:
> >>>> Hi Aoibheann,
> >>>>
> >>>> I think that anova on glmmTMB objects only produce Wald tests,
> >>>> which
> >>> don't
> >>>> seem to be very reliable.
> >>>> You might want to look at the monet package (or its little brother
> >>>> afex) that can produce LRT tests or parametric bootstrap.
> >>>>
> >>>> Moreover, emmeans should work fine with glmmTMB but I remember
> >>>> having a similar problem.
> >>>>
> >>>> Maybe this thread and the following discussion can help you out:
> >>>>
> >>> https://stackoverflow.com/questions/48609432/error-message-lsmeans-f
> >>> or -beta-mixed-regression-model-with-glmmtmb
> >>>>
> >>>> GA2
> >>>>
> >>>>
> >>>>
> >>>> Le ven. 9 nov. 2018 à 15:24, Aoibheann Gaughran <gaughra using tcd.ie> a
> >>> écrit :
> >>>>
> >>>>> Update: lsmeans works if I use an older version of lsmeans
> >>>>> (2.27-62) -
> >>> can
> >>>>> I rely on the results?
> >>>>>
> >>>>> Many thanks, Aoibheann
> >>>>>
> >>>>> On Fri, 9 Nov 2018 at 12:24, Aoibheann Gaughran <gaughra using tcd.ie>
> >> wrote:
> >>>>>
> >>>>>> Dear list,
> >>>>>>
> >>>>>> I am trying to perform post hoc tests on a glmmTMB model. I would
> >>>>> normally
> >>>>>> use car::Anova and mulgcomp::glht on my glmms (lmers). However,
> >>>>>> these functions do not appear to be working for glmmTMB (when I
> >>>>>> run the model
> >>>>> as
> >>>>>> an lmer they work fine). I have also tried lsmeans and emmeans
> >>>>>> but they
> >>>>> do
> >>>>>> not appear to support glmmTMB either (although it appears they
> >>>>>> used
> >>> to).
> >>>>> I
> >>>>>> have found various treads online suggesting that these functions
> >>>>>> should work with TMB but they date back a few months.
> >>>>>>
> >>>>>> I am using the most up to date versions of R (3.5.1) and have
> >>>>>> updated
> >>> all
> >>>>>> of my packages e.g. glmmTMB 0.2.2.0, lsmeans 2.30-0
> >>>>>>
> >>>>>> The following are the error messages that I receive:
> >>>>>>
> >>>>>>> Anova(topmodTRFETE, type = 2)Error in I.p[c(subs.relatives,
> >>>>> subs.term), , drop = FALSE] :
> >>>>>>   subscript out of bound
> >>>>>>
> >>>>>>> summary(glht(topmodTRFETE, linfct = mcp(roadworks = "Tukey")),
> >>>>>>> test =
> >>>>> adjusted("holm"))Error in modelparm.default(model, ...) :
> >>>>>>   dimensions of coefficients and covariance matrix don't match
> >>>>>>>
> >>>>>
> >>> source(system.file("other_methods","lsmeans_methods.R",package="glmm
> >>> TM
> >>> B"))>
> >>>>> lsmeans(topmodTRFETE, pairwise ~ roadworks, adjustSigma = TRUE,
> >>>>> adjust = "holm")Error in ref_grid(object, ...) :
> >>>>>>   Can't handle an object of class  “glmmTMB”
> >>>>>>  Use help("models", package = "emmeans") for information on
> >>>>>> supported
> >>>>> models.> rw.emm.s <- emmeans(topmodTRFETE, "roadworks")Error in
> >>>>> ref_grid(object, ...) :
> >>>>>>   Can't handle an object of class  “glmmTMB”
> >>>>>>  Use help("models", package = "emmeans") for information on
> >>>>>> supported
> >>>>> models.
> >>>>>>
> >>>>>>
> >>>>>> Can any point me in the direction of a workaround for performing
> >>> posthocs
> >>>>>> on my glmmTMB model?
> >>>>>>
> >>>>>> Many thanks,
> >>>>>>
> >>>>>> --
> >>>>>> Aoibheann Gaughran
> >>>>>>
> >>>>>> Behavioural and Evolutionary Ecology Research Group Zoology
> >>>>>> Building School of Natural Sciences Trinity College Dublin Dublin
> >>>>>> 2 Ireland
> >>>>>> Phone: +353 (86) 3812615
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Aoibheann Gaughran
> >>>>>
> >>>>> Behavioural and Evolutionary Ecology Research Group Zoology
> >>>>> Building School of Natural Sciences Trinity College Dublin Dublin
> >>>>> 2 Ireland
> >>>>> Phone: +353 (86) 3812615
> >>>>>
> >>>>>         [[alternative HTML version deleted]]
> >>>>>
> >>>>> _______________________________________________
> >>>>> R-sig-mixed-models using r-project.org mailing list
> >>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> >>>>>
> >>>>
> >>>>       [[alternative HTML version deleted]]
> >>>>
> >>>> _______________________________________________
> >>>> R-sig-mixed-models using r-project.org mailing list
> >>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> >>>>
> >>>
> >>> _______________________________________________
> >>> R-sig-mixed-models using r-project.org mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> >>>
> >>
> >>
> >> --
> >> Aoibheann Gaughran
> >>
> >> Behavioural and Evolutionary Ecology Research Group Zoology Building
> >> School of Natural Sciences Trinity College Dublin Dublin 2 Ireland
> >> Phone: +353 (86) 3812615
> >>
> >> 	[[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> R-sig-mixed-models using r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models


More information about the R-sig-mixed-models mailing list