[R-sig-ME] plot log transformed variable with Effects package

Ben Bolker bbolker at gmail.com
Wed Oct 9 19:45:19 CEST 2013


 <John.Morrongiello at ...> writes:

> 
> Hi list
> 
> I'm having trouble plotting a mixed model that includes log transformed
(or any transformed) terms.
> 
library(lme4)
library(effects)
data(cake, package="lme4")
> 
> ###this works
fm1 <- lmer(angle ~ recipe * temperature
 + (1|recipe:replicate), 
  cake, REML = FALSE)

plot(Effect(c('recipe','temperature'), fm1))
##but this doesn't (log transformed angle)

fm2 <- lmer(log(angle) ~ recipe * temperature + (1|recipe:replicate), 
 cake, REML = FALSE)

plot(Effect(c('recipe','temperature'), fm2))
> 
> ###returns the error:
 
> Error in plot(Effect(c("recipe", "temperature"), fm2)) :
> 
> error in evaluating the argument 'x' in selecting a method for function
> 'plot': Error in eval(expr, envir,
> enclos) : object 'angle' not found
> 
> However, including log-transformed terms works for a simple linear model
> 
> mod <- lm(log(prestige) ~ income*type, data=Prestige)
> 
> plot(Effect(c("income","type"), mod))
 
> Including a function in a model (e.g. fm2) used to work in an older
> version of the 'effects' package (sorry can't version) but obviously
> not anymore. Any thoughts on how to get fm2 to work without having
> to transform variables beforehand, if it is indeed still possible?

  This is probably something to take up with the maintainer of
the 'effects' package, who in turn might have to consult the lme4
maintainers.  The proximal problem occurs in 

  plot -> Effect -> Effect.merMod -> Effect.mer -> Effect ->
mer.to.glm

  There is a 'data' object that appears to be coming from the
model.frame() of the original object, but I haven't tracked its
source down yet -- but the problem is that it has log(angle) rather
than angle as a column ...



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