[R-sig-ME] Failure to load lme4 on Mac
Ken Knoblauch
ken.knoblauch at inserm.fr
Sat Jul 17 07:30:34 CEST 2010
Here is one more thing that I tried, that goes along with
the hypothesis of interference from some previous initialization.
I first ran the lmer-1.R file up to the offending section and
got one result then cleared the workspace and did a gc()
and then ran just the offending section of code and got
a different result:
... Previous section of file run ...
> ## Wrong formula gave a seg.fault at times:
> D <- data.frame(y= rnorm(20,10), ff = gl(4,5),
+ x1=rnorm(20,3), x2=rnorm(20,7),
+ 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)),
+ identical(ranef(m2), ranef(m3)),
+ inherits(tryCatch(lmer(y ~ x2|ff + x1, data = D), error =
function(e)e),
+ "error"))
Error: identical(ranef(m0), ranef(m1)) is not TRUE
In addition: Warning message:
In Ops.factor(ff, x1) : + not meaningful for factors
... then just the next section
> rm(list = ls(all = TRUE))
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 906841 24.3 1476915 39.5 1368491 36.6
Vcells 315369 2.5 905753 7.0 827749 6.4
> D <- data.frame(y= rnorm(20,10), ff = gl(4,5),
+ x1=rnorm(20,3), x2=rnorm(20,7),
+ 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)),
+ identical(ranef(m2), ranef(m3)),
+ inherits(tryCatch(lmer(y ~ x2|ff + x1, data = D), error =
function(e)e),
+ "error"))
Error: identical(ranef(m2), ranef(m3)) is not TRUE
In addition: Warning message:
In Ops.factor(ff, x1) : + not meaningful for factors
Curious.
Ken
Quoting Martin Maechler <maechler at stat.math.ethz.ch>:
>>>>>> "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
>
--
Ken Knoblauch
Inserm U846
Stem-cell and Brain Research Institute
Department of Integrative Neurosciences
18 avenue du Doyen Lépine
69500 Bron
France
tel: +33 (0)4 72 91 34 77
fax: +33 (0)4 72 91 34 61
portable: +33 (0)6 84 10 64 10
http://www.sbri.fr/members/kenneth-knoblauch.html
More information about the R-sig-mixed-models
mailing list