[R-sig-ME] Problem with computing gr and false convergence

Ben Bolker bbolker at gmail.com
Wed Jun 15 16:14:57 CEST 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/14/2011 06:45 PM, Iker Vaquero Alba wrote:
> 
>    Thank you so much for that, Ben.
> 
>    I´m trying to do a split plot simplification with that model, but I
> still get this message with briventral:
> 
>     s.g1.5<-update(g1,~.-briventral)
> Mensajes de aviso perdidos
> 1: In mer_finalize(ans) :
>   Cholmod warning 'not positive definite' at
> file:../Cholesky/t_cholmod_rowfac.c, line 432
> 2: In mer_finalize(ans) : false convergence (8)
> 
> 
>     Do you think I should try to centre and scale that variable as well?
> 
>    Thank you.
> 
>    Iker.

  Oddly enough I am able to fit the model better when the continuous
variables are *not* centered and scaled.  I can't explain this
particularly well, but weird things sometimes happen when you have a
model that is on the edge of being overfitted (which this one still is
- -- 12 parameters plus two nested random effects for 94 data points in a
fairly unbalanced design). Some code is also included below to take a
quick look at the distribution of the data.  There are some patterns,
but the continuous variables don't seem to be doing too much ...

X <- read.table("nfledge-nhatch insects 2009-2010.txt",header=TRUE)
X <- transform(X,site=factor(site),pair=factor(pair),year=factor(year))
X <- transform(X,ctlength=scale(tlength),
               cbriventral=scale(briventral))
f1 <- nhatch~(sex+mod+briventral+brithr+tlength+cond)^2-sex:mod
ncol(model.matrix(f1,data=X)) ## 41 parameters!
f2 <- nhatch~sex+mod+briventral+brithr+tlength+cond+year
ncol(model.matrix(f2,data=X)) ## 12 parameters  (still dicey)
with(X,table(site,pair,year))
library(lme4)
X <-
na.omit(subset(X,select=c(site,pair,year,sex,mod,nhatch,briventral,brithr,tlength,cond)))
g1 <-
glmer(nhatch~sex+mod+briventral+brithr+tlength+cond+year+(1|site/pair),
      data=X,family=poisson)
s.g1.5<-update(g1,~.-briventral)

library(ggplot2)
X2 <- melt(X,id.var=1:6)
ggplot(X2,
       aes(x=value,y=nhatch,colour=mod,shape=sex))+
         geom_point()+facet_grid(year~variable,scale="free_x")
ggplot(X,
     aes(x=mod,y=nhatch,colour=mod))+geom_boxplot()+facet_grid(year~sex)

dd <- drop1(g1)


> 
> ------------------------------------------------------------------------
> *De:* Ben Bolker <bbolker at gmail.com>
> *Para:* Iker Vaquero Alba <karraspito at yahoo.es>
> *CC:* r-sig-mixed-models at r-project.org
> *Enviado:* mar,14 junio, 2011 23:02
> *Asunto:* Re: [R-sig-ME] Problem with computing gr and false convergence
> 
> On 06/14/2011 04:12 PM, Iker Vaquero Alba wrote:
>>    Thank you very much. Data is attached.
> 
>   Unfortunately, looking at your data makes it very clear that you will
> have a lot of trouble fitting this model: maybe this isn't the complete
> data set ... ?
> 
> * there are only two years, which makes it nearly impossible to handle
> year as a random effect
> 
>   * you have a total of 94 observations in the data set, and your model
> involves 41 (!!) fixed effect parameter.  There is just no way you can
> fit this many parameters (even neglecting the random effects).
> 
>   I had some success with this model by dropping the interactions and
> fitting only the main effects.  The site-level variance is estimated as
> zero, but there is some pair*site variance (and a significant difference
> between years, at least as inferred from a Wald Z test)
> 
> X <- read.table("nfledge-nhatch insects 2009-2010.txt",header=TRUE)
> X <- transform(X,site=factor(site),pair=factor(pair),year=factor(year))
> X <- transform(X,ctlength=scale(tlength,center=TRUE))
> f1 <- nhatch~(sex+mod+briventral+brithr+tlength+cond)^2-sex:mod
> ncol(model.matrix(f1,data=X)) ## 41 parameters!
> f2 <- nhatch~sex+mod+briventral+brithr+tlength+cond+year
> ncol(model.matrix(f2,data=X)) ## 12 parameters
> with(X,table(site,pair,year))
> library(lme4)
> g1 <-
> glmer(nhatch~sex+mod+briventral+brithr+ctlength+cond+year+(1|site/pair),
>       data=X,family=poisson,na.action=na.omit)
> 
> 
>>
>>    To center and scale continuous variables, I've tried standardizing
>> them, as someone suggested in some post, and I have succesfully done
>> before. But when fitting the model with standardized variables, I get:
>>
>>    "Error in `contrasts<-`(`*tmp*`, value = "contr.treatment") :
>>  contrasts can be applied only to factors with 2 or more levels"
>>
>>    Any ideas? Thank you very much!
>>
>>
>> ------------------------------------------------------------------------
>> *De:* Ben Bolker <bbolker at gmail.com <mailto:bbolker at gmail.com>>
>> *Para:* r-sig-mixed-models at r-project.org
> <mailto:r-sig-mixed-models at r-project.org>
>> *Enviado:* mar,14 junio, 2011 21:09
>> *Asunto:* Re: [R-sig-ME] Problem with computing gr and false convergence
>>
>> On 06/14/2011 02:57 PM, Iker Vaquero Alba wrote:
>>>
>>> Dear R-users:
>>>
>>> I am fitting a model with quite many terms, and I'm having a lot of
>>> problems. Either I get:
>>>
>>>
>>> "In mer_finalize(ans) : gr cannot be computed at initial par (65)"
>>>
>>> or false convergence problems, when the model is a little bit
>>> simpler. I attach the most complex one with "verbose=TRUE" to see if
>>> you can help me detectt where the problem is:
>>>
>>>
>>>
>>
> hatchcoltailmodel1<-lmer(nhatch~sex+mod+briventral+brithr+tlength+cond+briventral:brithr+briventral:tlength+briventral:cond+briventral:sex+briventral:mod+
>>>brithr:tlength+brithr:cond+brithr:sex+brithr:mod+tlength:cond+tlength:sex+tlength:mod+
>>>
>>
> cond:sex+cond:mod+(1|site/pair)+(1|year),family=poisson,na.action=na.omit,verbose=TRUE)
>>>
>>>  0:          nan:  1.06217 0.584705 0.261488 -15.3440 -0.757161
>>> 16.9953 3.85760  1.53215  1.30924  5.14768 -0.0259057 0.0675839
>>> 0.172804  9.56398 0.000488889 -0.000119170 0.0156963 0.00445958
>>> -0.109915 -0.0119783 -0.0113610 -0.00132653 0.00594852 -2.29204e-05
>>> -0.0678690 0.00288760 0.321050 -0.0107392 0.0195566 -0.00242138
>>> -0.0538382 -0.0866086 -0.00632440 -0.168793 -0.0123981 0.00379237
>>> -0.00313671 -0.0228579 0.504940      nan -0.722186 -1.31712 -0.618912
>>>  -1.25492 Mensajes de aviso perdidos In mer_finalize(ans) : gr cannot
>>> be computed at initial par (65)
>>>
>>>
>>
>>  Very  hard to say without a reproducible example.  Can you post the
>> data somewhere?
>>
>>  How big is your data set?
>>
>>  If any of your variables are continuous, consider centering and
>> scaling them (e.g. using scale())
>>
>>
>>  Other than that, I only have a couple of coding style suggestions.
>>
>> 1. I *think* but am not sure that your very long model above is
>> equivalent to
>>
>> (briventral+brithr+tlength+cond+sex+mod)^2-mod:sex
>>
>> (all main effects + all pairwise interactions except mod:sex) but you
>> should of course check that (and the order might not be the same as the
>> model you have above).
>>
>> 2.  It is best to use the 'data' argument to specify a data frame
>> (rather than attach()ing or having the variables floating around in the
>> workspace)
>>
>> _______________________________________________
>> R-sig-mixed-models at r-project.org <mailto:R-sig-mixed-models at r-project.org>
>> <mailto:R-sig-mixed-models at r-project.org
> <mailto:R-sig-mixed-models at r-project.org>> mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk34vmEACgkQc5UpGjwzenNQ6wCfcdqWiIBponA2bbunKJva2L2V
drIAnA8HrCIYfGt/yWpZUdgMPTTP5CeX
=wLn4
-----END PGP SIGNATURE-----




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