[R-sig-ME] Plotting post-fitting inference effects in a glmmTMB model

Fox, John j|ox @end|ng |rom mcm@@ter@c@
Tue Aug 27 17:24:34 CEST 2019


Dear Ben, Daniel, and Julian,

This bug is now fixed in version 4.1-2 of the effects package on R-Forge. 

Waiting a day to give R-Forge a chance to rebuild the package, you should be able to install it from there via install.packages("effects", repos="http://R-Forge.R-project.org"). 

I'll submit the updated package to CRAN soon.

Best,
 John

> On Aug 27, 2019, at 9:57 AM, Fox, John <jfox using mcmaster.ca> wrote:
> 
> 
> Dear Ben, Daniel, and Julian,
> 
> A reproducible example would have been nice, but it's easy to create one:
> 
> -------- snip ---------
> 
>> library("glmmTMB")
>> example("glmmTMB")
> 
> . . .
> 
>> library("effects")
> Loading required package: carData
> lattice theme set by effectsTheme()
> See ?effectsTheme for details.
>> ef <- Effect("sd", m0) # sd is character
>> plot(ef) # error
> Error in UseMethod("droplevels") : 
>  no applicable method for 'droplevels' applied to an object of class "character"
>> 
>> dat$sd <- as.factor(dat$sd)
>> mf0 <- update(m0)
>> ef0 <- Effect("sd", mf0)
>> plot(ef0) # works
> 
> And as Ben suggests, the problem isn't unique to glmmTMB models.
> 
> The temporary fix, as in the example above, is to change the character predictor to a factor. That shouldn't be necessary: Until the current version, Effect() didn't accommodate character predictors. Now that it does, plot.eff() should work with them too and it doesn't. I'll investigate the bug and fix it.
> 
> Best,
> John
> 
> 
>  -------------------------------------------------
>  John Fox, Professor Emeritus
>  McMaster University
>  Hamilton, Ontario, Canada
>  Web: http::/socserv.mcmaster.ca/jfox
> 
>> On Aug 27, 2019, at 9:31 AM, Ben Bolker <bbolker using gmail.com> wrote:
>> 
>> 
>> Yes, quite weird as effects:::plot.eff (the relevant method) appears
>> to check that variables are factors every time it tries to applies
>> droplevels().  A reproducible example would be great (although
>> technically maybe not this list's problem, as it's not clear it's
>> directly mixed-model-related?)
>> 
>> On 2019-08-27 8:06 a.m., Daniel Lüdecke wrote:
>>> Dear Julian,
>>> 
>>> without a reproducible example, it's a bit difficult to guess how to solve
>>> your issue. Is one of your predictors of class "character" and should
>>> probably be coerced to factor before you fit your model?
>>> 
>>> Else, you could also try the "ggeffects" package
>>> (https://strengejacke.github.io/ggeffects/), where you have three functions:
>>> ggpredict(), ggeffect() and ggemmeans(), each calling the related functions
>>> "predict()", "effects::effect()" or "emmeans::emmeans()" internally to
>>> compute marginal effects. There is a plot() method as well, based on ggplot2
>>> (see examples here
>>> https://strengejacke.github.io/ggeffects/articles/introduction_plotcustomize
>>> .html or here
>>> https://strengejacke.github.io/ggeffects/articles/introduction_plotmethod.ht
>>> ml). 
>>> 
>>> Best
>>> Daniel
>>> 
>>> -----Ursprüngliche Nachricht-----
>>> Von: R-sig-mixed-models [mailto:r-sig-mixed-models-bounces using r-project.org] Im
>>> Auftrag von Julian Gaviria Lopez
>>> Gesendet: Dienstag, 27. August 2019 12:01
>>> An: r-sig-mixed-models using r-project.org
>>> Betreff: [R-sig-ME] Plotting post-fitting inference effects in a glmmTMB
>>> model
>>> 
>>> Hello,
>>> 
>>> 
>>> I have the next model:
>>> 
>>>> zipoisson2  <- glmmTMB(Observations ~ CAP * Condition + (1|ID), 
>>>> contrasts=list(CAP="contr.sum",Condition="contr.sum"), data=mDATA, 
>>>> ziformula=~ 1 , family=poisson)
>>> 
>>> 
>>> Plotting the effects ("effects" package), I obtain:
>>> 
>>> (ae <- allEffects(zipoisson2))
>>> 
>>> model: Observations ~ CAP * Condition
>>> CAP*Condition effect
>>>       Condition
>>> CAP        aapaff      aff      neu     pneu
>>> apreC3 3.222636 2.731724 2.777021 2.573694
>>> insC5  1.406698 3.173030 2.104875 1.420336
>>> preC1  2.883115 3.641252 2.541221 2.635991
>>> preC5  2.184075 2.310564 3.137734 1.995430
>>> 
>>> plot(ae)
>>> Error in UseMethod("droplevels") :
>>> no applicable method for 'droplevels' applied to an object of class
>>> "character"
>>> 
>>> Question 1: Has anyone encountered the same issue? Any hint to solve it?
>>> 
>>> Question 2: Maybe is there any other package works better with glmmTMB model
>>> 
>>> Thanks in advance for any hint about it.
>>> 
>>> Julian,
>>> 
>>> 	[[alternative HTML version deleted]]
>>> 
>>> _______________________________________________
>>> R-sig-mixed-models using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>> 
>>> --
>>> 
>>> _____________________________________________________________________
>>> 
>>> Universitätsklinikum Hamburg-Eppendorf; Körperschaft des öffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de
>>> Vorstandsmitglieder: Prof. Dr. Burkhard Göke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Prölß, Marya Verdel
>>> _____________________________________________________________________
>>> 
>>> SAVE PAPER - THINK BEFORE PRINTING
>>> 
>>> _______________________________________________
>>> 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
> 
> _______________________________________________
> 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