[R-sig-ME] Intelligent use of mcmcsamp()

John Maindonald john.maindonald at anu.edu.au
Wed Dec 9 00:18:40 CET 2009


I wonder whether you have considered simulation from the full
variance-covariance matrix.  For some samples, one or more
variance parameter estimates will be allowed to go negative, 
but the full variance-covariance matrix should still be positive 
definite.  This avoids any problem with variance close to zero,
but it does mean (and I think this a useful side-effect) that 
credible intervals will sometimes have a negative lower bound,
or even lie entirely on the negative real line!

Why a useful side effect?  I've encountered cases where scientists, 
in a field experiment, have chosen blocks that are e.g., long strip 
at right angles to a river bank, thus spanning about as wide a range 
of variation as is possible.  (I've been told about the river bank 
example, the examples in my own experience were a bit different.)
A model in which there is a negative component of variance may 
then give a formally correct variance-covariance structure.  It is a bit 
like using a complex number representation to solve some problems 
on the real line.

John Maindonald             email: john.maindonald at anu.edu.au
phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
Centre for Mathematics & Its Applications, Room 1194,
John Dedman Mathematical Sciences Building (Building 27)
Australian National University, Canberra ACT 0200.
http://www.maths.anu.edu.au/~johnm

On 08/12/2009, at 9:30 AM, John Maindonald wrote:

> This looks promising, thanks for your efforts.  Fortunately the MacOS X 
> version runs fine, under R-devel (2.11.0 Under development).
> 
> John Maindonald             email: john.maindonald at anu.edu.au
> phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
> Centre for Mathematics & Its Applications, Room 1194,
> John Dedman Mathematical Sciences Building (Building 27)
> Australian National University, Canberra ACT 0200.
> http://www.maths.anu.edu.au/~johnm
> 
> On 08/12/2009, at 12:41 AM, Douglas Bates wrote:
> 
>> I agree that mcmcsamp in current versions of the lme4 package provide
>> suspect results.  I still have problems formulating an MCMC update for
>> the variance components when there is a possibility the value getting
>> close to zero.
>> 
>> In the development branch of the lme4 package I have added profiling
>> of the deviance with respect to the parameters as a method of
>> determining the precision of the parameter estimates.  This package is
>> called lme4a in the R packages tab of
>> http://lme4.r-forge.r-project.org/  Unfortunately it looks like the
>> Windows binary is not available at R-forge (and the error message
>> looks peculiar because it is an error from an R declarations file - it
>> may be that I don't have the correct sequence of include files).
>> 
>> I usually look at profiles of the change in the deviance by taking the
>> signed square root transformation.  Results for your models are
>> enclosed.  In these cases there aren't problems with the variance of
>> the random effects approaching zero.  In the case of the Dyestuff data
>> we do get such behavior and the splom plot shows some rough edges as a
>> result.
>> 
>> 
>> 
>> On Sat, Dec 5, 2009 at 2:21 AM, John Maindonald
>> <john.maindonald at anu.edu.au> wrote:
>>> Below are two examples of the use of mcmcsamp() with output
>>> from lmer().  The first set of results are believable.
>>> For the second set of results, both variance estimates
>>> (for 'site' and for 'Residual' or scale) lie outside of the
>>> credible intervals that are obtained.  Assuming I have
>>> used the functions correctly, it seems surprising that
>>> mcmcsamp() would 'fail' on the second example, which is
>>> balanced and where both variances seem well away from
>>> zero.  These results are consistent over repeated
>>> simulations.
>>> 
>>> I'd be interested to hear from list members who make regular use of
>>> mcmcsamp(), as well as maybe from Douglas. Is there any advance on
>>> the current routines in the development branch?
>>> 
>>> Questions:
>>> 
>>> (1) Are instances of less obvious failoure common? How does one check?
>>> (2) Is there are more direct way to get the credible intervals?
>>> (3) What insight is avaiable on why the second example fails?
>>> 
>>> John Maindonald.
>>> 
>>> 
>>> ## EXAMPLE 1:
>>> 
>>> library(DAAG)
>>> science1.lmer <- lmer(like ~ sex + PrivPub + (1 | school:class),
>>>                   data = science)
>>>> science1.lmer
>>>> ...
>>> Random effects:
>>> Groups       Name        Variance Std.Dev.
>>> school:class (Intercept) 0.321    0.566
>>> Residual                 3.052    1.747
>>> Number of obs: 1383, groups: school:class, 66
>>>> ...
>>> 
>>> science1.mcmc <- mcmcsamp(science1.lmer , n=1000)
>>> z <- VarCorr(science1.mcmc, type="varcov")
>>> colnames(z) <- c("school:class", "Residual")
>>> 
>>>> ## The following are believable!
>>>> t(apply(z,2, function(x)quantile(x, prob=c(.025, .975))))
>>>            2.5%  97.5%
>>> school:class 0.1442 0.4334
>>> Residual     2.8601 3.3427
>>> 
>>> 
>>> ## EXAMPLE 2:
>>> ant111b.lmer <- lmer(harvwt ~ 1 + (1 | site), data=ant111b)
>>>> ant111b.lmer
>>> ...
>>> Random effects:
>>> Groups   Name        Variance Std.Dev.
>>> site     (Intercept) 2.368    1.54
>>> Residual             0.578    0.76
>>> Number of obs: 32, groups: site, 8
>>>> ...
>>> 
>>> ant111b.mcmc <- mcmcsamp(ant111b.lmer, n=1000)
>>> z <- VarCorr(ant111b.mcmc, type="varcov")
>>> colnames(z) <- c("site", "Residual")
>>>> t(apply(z,2, function(x)quantile(x, prob=c(.025, .975))))
>>>        2.5% 97.5%
>>> site     0.2376 1.878
>>> Residual 0.6370 2.488
>>> 
>>> 
>>> John Maindonald             email: john.maindonald at anu.edu.au
>>> phone : +61 2 (6125)3473    fax  : +61 2(6125)5549
>>> Centre for Mathematics & Its Applications, Room 1194,
>>> John Dedman Mathematical Sciences Building (Building 27)
>>> Australian National University, Canberra ACT 0200.
>>> http://www.maths.anu.edu.au/~johnm
>>> 
>>> _______________________________________________
>>> R-sig-mixed-models at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>> 
>> <john.Rout><Rplots.pdf>
> 
> _______________________________________________
> 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