[R-sig-ME] segfaults from lmer on a 64-bit system
Douglas Bates
bates at stat.wisc.edu
Thu Aug 14 11:07:45 CEST 2008
Thanks for sending the data and the formula, Ben.
I have good news and bad news. The good news is that I was able to
get consistent behavior on this example from different systems. The
bad news is that I did so by having R segfault on a Mac.
I'm not sure exactly where the segfault occurs but the underlying
problem is your random effects specification. You are specifying a
huge number of random effects (27 terms, some of which may correspond
to more than one random effect) for each level of the grouping factor,
by.var, which has only 4 levels. You are trying to estimate something
like 380 variances or covariances from 4 groups.
Specifying the random effects is not simply a matter of incorporating
every fixed effect as a random effects and allowing a general
variance-covariance structure. In this case about the best that you
can hope to include with only 4 levels of the grouping factor is
(1|by.var).
On Thu, Aug 14, 2008 at 5:21 AM, Ben Hansen <bbh at umich.edu> wrote:
> Thanks for these suggestions.
>
> I updated to the latest versions of the packages, and the segfault persists.
>
> I have isolated an example for reproduction purposes. The data are given in
> http://www.stat.lsa.umich.edu/~bbh/segfault-bh.rda
>
> I get segfaults when I do:
>> library(lme4) ; load("segfault-bh.rda") ; mylme <-lmer(myfmla, data=mydata)
>
> The segfault occurs on a couple of setups:
> 1. 64-bit Red Hat linux; R version 2.7.1:
>> sessionInfo()
> R version 2.7.1 (2008-06-23)
> x86_64-unknown-linux-gnu
>
> locale:
> LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8
> ;LC_MONETARY=C;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADD
> RESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] lme4_0.999375-24 Matrix_0.999375-11 lattice_0.17-8
>
> loaded via a namespace (and not attached):
> [1] grid_2.7.1 tools_2.7.1
>
> 2. Mac OS; R version 2.7.1:
>> sessionInfo()
> R version 2.7.1 (2008-06-23)
> powerpc-apple-darwin8.10.1
>
> locale:
> C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] lme4_0.999375-22 Matrix_0.999375-10 lattice_0.17-8
>
> loaded via a namespace (and not attached):
> [1] grid_2.7.1
>
> 3. I also got the segfault on the 64-bit linux machine using R version
> 2.6.1, lme4 version 0.99875-9 (I think), and Matrix version 0.999375-9 (I
> think).
>
> 4. *On the other hand,* it sort of works (without segfaulting at least)
> using older R, lme4 and Matrix on my Mac:
>> sessionInfo()
> R version 2.6.2 (2008-02-08)
> powerpc-apple-darwin8.10.1
>
> locale:
> C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] lme4_0.99875-9 Matrix_0.999375-9 lattice_0.17-6
>
> loaded via a namespace (and not attached):
> [1] grid_2.6.2
>
>> mylme <- lmer(myfmla, data=mydata)
>
> Warning messages:
> 1: In .local(x, ..., value) :
> Estimated variance-covariance for factor 'by.var' is singular
>
> 2: In .local(x, ..., value) :
> nlminb returned message false convergence (8)
>
> --Perhaps the warnings contain a clue as to what the problem is?
>
> Thanks for your consideration of this.
>
> Ben
> On 8/13/08 2:55 AM, "Douglas Bates" <bates at stat.wisc.edu> wrote:
>
>> I would first try later versions of both the Matrix and lme4 packages.
>> Versions currently on CRAN are Matrix_0.999375-11 and
>> lme4_0.999375-24
>>
>> If you continue to get segfaults then having a reproducible example,
>> along with the data - anonymized if you wish, will be important.
>>
>> You can determine the versions of the packages that you are using with
>>
>> sessionInfo()
>>
>>
>> On Wed, Aug 13, 2008 at 12:06 AM, Hansen, Ben <bbh at umich.edu> wrote:
>>> Hello all,
>>>
>>>
>>>
>>> I am encountering trouble with lme4 on a 64-bit linux system, and I'm
>>> wondering if any of you might have advice on how to circumvent it. Using
>>> recent versions of lme4 and R, I was able to compile and install the
>>> package, and use it with success on relatively small problems. However,
>>> when I tried to scale up to work on a big problem, applying lmer() with
>>> thousands of observations and a hundred or so random effects, my R fails
>>> reporting a segmentation fault. I don't see the same problem on a
>>> different 32-bit Mac OSX system, which runs the same code without
>>> evident difficulty.
>>>
>>>
>>>
>>> Some details of the setup where the problem occurs. We've tried a few
>>> combinations of things, so I write what we tried first, with variants
>>> noted in parentheses:
>>>
>>>
>>>
>>> Red Hat Enterprise Linux 4 (version 5)
>>>
>>> R version 2.7.1 (2.6.1)
>>>
>>> gcc/g++ compilers for C and C++, Portland Group Fortran compilers
>>> (gcc/g++/gfortran, ie full GNU compiler suite)
>>>
>>> Matrix package version 0.999375-10 (installed with and without
>>> --with-package-versions flag)
>>>
>>> lme4 version 0.999375-16 (installed with and without
>>> --with-package-versions flag)
>>>
>>>
>>>
>>> Any suggestions? I'd be very appreciative.
>>>
>>>
>>>
>>> Ben
>>>
>>>
>>>
>>>
>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-mixed-models at 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