[R] bVar slot of lmer objects and standard errors

Spencer Graves spencer.graves at pdf.com
Thu Dec 29 12:57:47 CET 2005

	  Have you received a satisfactory reply to this post?  I haven't seen 
one.  Unfortunately, I can't give a definitive answer, but I can offer 
an intelligent guess.  With luck, this might encourage someone who knows 
more than I do to reply.  If not, I hope these comments help you clarify 
the issue further, e.g., by reading the source or other references.

	  I'm not not sure, but I believe that
lmertest1 at bVar$schoolid[,,i] is the upper triangular part of the 
covariance matrix of the random effects for the i-th level of schoolid. 
  The lower triangle appears as 0, though the code (I believe) iterprets 
it as equal to the upper triangle.  More precisely, I suspect it is 
created from something that is stored in a more compact form, i.e., 
keeping only a single copy of the off-diagonal elements of symmetric 
matrices.  I don't seem to have access to your "nlmframe", so I can't 
comment further on those specifics.  You might be able to clarify this 
by reading the source code.  I've been sitting on this reply for several 
days without finding time to do more with it, so I think I should just 
offer what I suspect.

	  The specifics of your question suggest to me that you want to produce 
something similar to Figure 1.12 in Pinheiro and Bates (2000) 
Mixed-Effects Models in S and S-Plus (Springer).  That was produced from 
an "lmList" object, not an "lme" object, so we won't expect to get their 
exact answers.  Instead, we would hope to get tighter answers available 
from pooling information using "lme";  the function "lmList" consideres 
each subject separately with no pooling.  With luck, the answers should 
be close.

	  I started by making a local copy of the data:

OrthoFem <- Orthodont[Orthodont$Sex=="Female",]

	  Next, I believe to switch to "lme4", we need to quit R
completely and restart.  I did that.  Then with the following sequence 
of commands I produced something that looked roughly similar to the 
confidence intervals produced with Figure 1.12:

fm1OrthF. <- lmer(distance~age+(age|Subject), data=OrthoFem)

fm1.s <-  coef(fm1OrthF.)$Subject
fm1.s.var <- fm1OrthF. at bVar$Subject
fm1.s0.s <- sqrt(fm1.s.var[1,1,])
fm1.s0.a <- sqrt(fm1.s.var[2,2,])
fm1.s[,1]+outer(fm1.s0.s, c(-2,0,2))
fm1.s[,2]+outer(fm1.s0.a, c(-2,0,2))

	  hope this helps.  	
	  Viel Glueck.
	  spencer graves

Ulrich Keller wrote:

> Hello,
> I am looking for a way to obtain standard errors for emprirical Bayes 
estimates of a model fitted with lmer (like the ones plotted on page 14
of the document available at

Harold Doran mentioned
that  the posterior modes' variances can be found in the bVar slot of lmer
objects. However, when I fit e.g. this model:
> lmertest1<-lmer(mathtot~1+(m_escs_c|schoolid),hlmframe)
> then lmertest1 at bVar$schoolid is a three-dimensional array with dimensions (2,2,28). 
The factor schoolid has 28 levels, and there are random effects for the
intercept and m_escs_c, but what does the third dimension correspond to?
In other words, what are the contents of bVar, and how can I use them to
get standard errors?
> Thanks in advance for your answers and Merry Christmas,
> Uli Keller
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Spencer Graves, PhD
Senior Development Engineer
PDF Solutions, Inc.
333 West San Carlos Street Suite 700
San Jose, CA 95110, USA

spencer.graves at pdf.com
www.pdf.com <http://www.pdf.com>
Tel:  408-938-4420
Fax: 408-280-7915

More information about the R-help mailing list