[R-sig-ME] Bug report for lme

ONKELINX, Thierry Thierry.ONKELINX at inbo.be
Mon Mar 14 15:53:49 CET 2011


Michal,

SPL has 199 levels. Thus (SPL|Plate:Aliq) requires a 199 x 199 variance-covariance matrix, which is huge. 
Have a look at table(b$SPL, factor(b$Plate:b$Aliq)). Notice that you have many combinations without data.
Furthermore you have only 6 levels of Plate:Aliq, which is rather low to get good variance estimates.

Bottomline: your model is to complex for the data you have.

Best regards,

Thierry

----------------------------------------------------------------------------
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek
team Biometrie & Kwaliteitszorg
Gaverstraat 4
9500 Geraardsbergen
Belgium

Research Institute for Nature and Forest
team Biometrics & Quality Assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium

tel. + 32 54/436 185
Thierry.Onkelinx at inbo.be
www.inbo.be

To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
  

> -----Oorspronkelijk bericht-----
> Van: r-sig-mixed-models-bounces at r-project.org 
> [mailto:r-sig-mixed-models-bounces at r-project.org] Namens 
> Michal Figurski
> Verzonden: maandag 14 maart 2011 14:34
> Aan: Douglas Bates
> CC: R-SIG-Mixed-Models at r-project.org
> Onderwerp: Re: [R-sig-ME] Bug report for lme
> 
> Douglas,
> 
> It seems that I didn't make myself entirely clear, so here 
> are a few clarifications. I also attach some data and a 
> reproducible example that crashes R -  at least on my machine.
> 
> Clarifications:
>   - "hundreds of lines" - this was actually just one line in 
> R output. 
> This was part of the error message. I selected it and pasted 
> into the email body, and it got converted to multiple 
> lines... I agree this is unlikely to be helpful, though I was 
> not sure, so I pasted the entire error message.
>   - formula with 'paste()' is not a problem to me - I use it 
> daily and it always works. Though for your convenience, in 
> the attached code I used explicit formula - the outcome is 
> unfortunately the same.
>   - my .RData file is not corrupt and R starts normally. It 
> only crashes after I run the problem code.
> 
> The code to reproduce the error:
> 
> # 
> **************************************************************
> ***** # # Working example to reproduce crash
> library(lme4)
> 
> # Read the data in - replace path with your path
> b      <- read.csv("crash-example.csv")
> b$Aliq <- factor(b$Aliq)
> b$SPL  <- factor(b$SPL)
> 
> # 1st example, to show that it works - on a selected set of 
> data # It takes a few moments, but it works - at least it 
> doesn't crash R:
> bb  <- b[b$SPL %in% unique(b$SPL[b$Plate=="TRT1"]),]
> b.1 <- lmer(Conc~SPL + (SPL|Plate:Aliq)-1, data=bb)
> 
> # 2nd example - it takes only a few seconds and R crashes:
> # R-version 2.12.2 on Win7 64bit
> # Package lme4 version 0.999375-39
> # Previously, when used in R 2.11.1 with lme4 version 
> 0.999375-35, # I got the error that I pasted in the message 
> before, but the R # did not crash.
> b.2 <- lmer(Conc~SPL + (SPL|Plate:Aliq)-1, data=b) # 
> ******************************************************************* #
> 
> Kind regards,
> 
> --
> Michal J. Figurski, PhD
> HUP, Pathology & Laboratory Medicine
> Biomarker Research Laboratory
> 3400 Spruce St. 7 Maloney S
> Philadelphia, PA 19104
> tel. (215) 662-3413
> 
> 
> On 3/11/2011 4:00 PM, Douglas Bates wrote:
> > On Fri, Mar 11, 2011 at 2:32 PM, Michal Figurski 
> > <figurski at mail.med.upenn.edu>  wrote:
> >> Dear Prof. Bates,
> >
> >> I'm working with a lmer model using your lme4 library version 
> >> 0.999375-35 with R 2.11.1 on Win7 64bit. Shortly after 
> starting the 
> >> function, the R window clears and the following is being displayed:
> >>
> >> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
> 0, 0, 0, 0, 
> >> 0, 0,
> >
> > ... Hundreds of lines deleted
> >
> >> REML = TRUE,  verbose = 0L)
> >>   4: do.call(lmer_finalize, ans)
> >>   5: lmer(formula(paste(i1, "~SPL + (SPL|Plate:Aliq)-1")), 
> data = a) 
> >> Error in mer_finalize(ans) : caught access violation - 
> continue with 
> >> care
> >>>
> >
> >> OK, so I updated R and lme4 to the latest versions, and now R just 
> >> plainly crashes without any message. Let me know if you need 
> >> additional information to troubleshoot.
> >
> > Well, hundreds, perhaps thousands, of lines of (part of)  a 
> dump of an 
> > object are unlikely to be helpful.
> >
> > To get R working again you probably need to delete the file 
> .RData in 
> > the default directory in which you start R.  It is most likely that 
> > you have a corrupt object in the saved worksheet.
> >
> > Secondly, using paste to create a formula is not a great idea.  The 
> > formula may have ended up being unevaluated.  If you really 
> do need to 
> > use a character string to name the response variable the preferred 
> > approach is
> >
> > form<- substitute(foo ~ SPL + (SPL | Plate:Aliq) - 1, list(foo = 
> > as.name(i1))) lmer(form, data=a)
> >
> > If those suggestions don't help then please provide a reproducible 
> > example and preferrably on less than a gigantic data set.
> >
> > I am taking the liberty of cc:ing the 
> R-SIG-Mixed-Models at R-project.org 
> > mailing list on this reply.  Many of those who read the list may be 
> > able to help you and it is unlikely I will be able to give much 
> > assistance soon because I am travelling for the next 10 days.
> 



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