[R-sig-ME] Failure to load lme4 on Mac

Martin Maechler maechler at stat.math.ethz.ch
Fri Jul 16 18:05:39 CEST 2010


>>>>> "KK" == Ken Knoblauch <ken.knoblauch at inserm.fr>
>>>>>     on Fri, 16 Jul 2010 13:51:23 +0000 (UTC) writes:

   [...........]

    >> The CRAN machine is Mac OS X 10.5.8 with Xcode 3.1.4
    >> (using gcc-4.2) which is indeed the latest Xcode version
    >> for Leopard. If you have any hints as of why lme4 may be
    >> failing they are highly appreciated.

    >> Thanks,
    >> Simon

    [.......................]

    KK> Just having updated Xcode to 3.1.4 and fixed the versions of gcc, etc. so
    KK> that I'm able to install latest version of Rcpp and lme4a without any 
    KK> problems,
    KK> I'll take a bite, but maybe I'm just repeating what you have already seen.
    KK> I can install lme4 from source from Rforge with no problem.
    KK> Just for starters here is my sessionInfo
    KK> R version 2.11.1 Patched (2010-07-15 r52539) 
    KK> i386-apple-darwin9.8.0 

    KK> locale:
    KK> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

    KK> attached base packages:
    KK> [1] stats     graphics  grDevices utils     datasets  methods  
    KK> [7] base     

    KK> other attached packages:
    KK> [1] lme4_0.999375-34   Matrix_0.999375-41 lattice_0.18-8    

    KK> loaded via a namespace (and not attached):
    KK> [1] grid_2.11.1   nlme_3.1-96   stats4_2.11.1

    KK> I dowloaded lme4_0.999375-34.tar.gz from CRAN and ran
    KK> R CMD check on it and came up with
    KK> * checking tests ...
    KK> Running ‘extras.R’
    KK> Running ‘lmer-1.R’
    KK> ERROR
    KK> Running the tests in 'tests/lmer-1.R' failed.
    KK> Last 13 lines of output:
    KK> +                  x3=rnorm(20,1))
    >> m0 <- lmer(y ~ (x1 + x2)|ff, data = D)
    >> m1 <- lmer(y ~ x1 + x2|ff  , data = D)
    >> m2 <- lmer(y ~ x1 + (x2|ff), data = D)
    >> m3 <- lmer(y ~ (x2|ff) + x1, data = D)
    >> stopifnot(identical(ranef(m0), ranef(m1)),
    KK> +     identical(ranef(m2), ranef(m3)),
    KK> +    inherits(tryCatch(lmer(y ~ x2|ff + x1, data = D), error = function(e)e),
    KK> +                    "error"))
    KK> Error: identical(ranef(m0), ranef(m1)) is not TRUE
    KK> In addition: Warning message:
    KK> In Ops.factor(ff, x1) : + not meaningful for factors
    KK> Execution halted
    KK> which I think is the reported problem.

Yes, one of the typical two ones.

The other one that Mac useRs, e.g.,  Kent Holsinger, in a private
communication, have also encountered, is the even simpler case
{earlier in lmer-1.R, so this means it did not trigger for
*you*}:

y <- (1:20)*pi
x <- (1:20)^2
group <- gl(2,10)

stopifnot(require(lme4))
sessionInfo()

M2. <- lmer (y ~ 1 + x + (1 + x | group))
M2  <- lmer (y ~     x + (    x | group))

## should be identical (and is .. well, not on all versions on Mac OSX):
identical(ranef(M2), ranef(M2.))
## not  TRUE on some  Mac : OSX : R  combinations


How can the linear algebra computations that start from
identical numbers give different results *sometimes* on Mac OSX?
Could it be that it uses some Mac specific BLAS/LAPACK
optimizations which only happen *sometimes* ?

    KK> I went into the file lmer-1.R which seems to be where this is
    KK> coming from

[correct]

    KK> and sourced the lines indicated above and get

    >> D <-  data.frame(y= rnorm(20,10), ff = gl(4,5),
    KK> +                  x1=rnorm(20,3), x2=rnorm(20,7),
    KK> +                  x3=rnorm(20,1))
    >> m0 <- lmer(y ~ (x1 + x2)|ff, data = D)
    >> m1 <- lmer(y ~ x1 + x2|ff  , data = D)
    >> m2 <- lmer(y ~ x1 + (x2|ff), data = D)
    >> m3 <- lmer(y ~ (x2|ff) + x1, data = D)
    >> stopifnot(identical(ranef(m0), ranef(m1)),
    KK> +           identical(ranef(m2), ranef(m3)),
    KK> +           inherits(tryCatch(lmer(y ~ x2|ff + x1, data = D), error = 
    KK> function(e)e),
    KK> +                    "error"))
    KK> Error: identical(ranef(m2), ranef(m3)) is not TRUE
    KK> In addition: Warning message:
    KK> In Ops.factor(ff, x1) : + not meaningful for factors
    >> identical(ranef(m0), ranef(m1))
    KK> [1] TRUE

    >> identical(ranef(m2), ranef(m3))
    KK> [1] FALSE

    KK> so it happens in an R session as well.

yes. 
So, 
 m2 <- lmer(y ~ x1 + (x2|ff), data = D)
 m3 <- lmer(y ~ (x2|ff) + x1, data = D)

give differing results? How come?
It seems as curious as the above simpler case,
as really the initial starting matrices must be identical,
unless the mac CPU does some things slightly differently
depending on the exact machine configuration ???

To me that could mean that even two identical R statements
could give very slightly differing results, depending on the
exact circumstance in which they are called {and of course I'm
not talking about things that depend on options() or global
variables or different search(), ...}

??

    KK> Checking the ranef's
    >> ranef(m2)
    KK> $ff
    KK> (Intercept)          x2
    KK> 1  -1.4142222  0.15618464
    KK> 2   0.4787662 -0.05287424
    KK> 3   0.3193410 -0.03526755
    KK> 4   1.7224362 -0.19022335

    >> ranef(m3)
    KK> $ff
    KK> (Intercept)          x2
    KK> 1  -1.4141930  0.15618142
    KK> 2   0.4787944 -0.05287736
    KK> 3   0.3193632 -0.03527000
    KK> 4   1.7224652 -0.19022656

    KK> They do indeed differ.  I'm on a 32 bit machine, could this be
    KK> a 32/64 bit difference or something at the level of BLAS/ATLAS level?
    KK> That's out of my league.  If I have time, I'll try it on a 64 bit Mac, but I'm
    KK> not likely to get back to that before about the beginning of August.


    KK> Hope that this is useful.

    KK> Ken

    KK> -- 
    KK> Ken Knoblauch
    KK> Inserm U846
    KK> Stem-cell and Brain Research Institute
    KK> Department of Integrative Neurosciences
    KK> 18 avenue du Doyen Lépine
    KK> 69500 Bron
    KK> France
    KK> tel: +33 (0)4 72 91 34 77
    KK> fax: +33 (0)4 72 91 34 61
    KK> portable: +33 (0)6 84 10 64 10
    KK> http://www.sbri.fr/members/kenneth-knoblauch.html

    KK> _______________________________________________
    KK> R-sig-mixed-models at r-project.org mailing list
    KK> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models




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