[R] Confidence Intervals for Random Effect BLUP's
Rick Bilonick
rab at nauticom.net
Fri Nov 9 20:15:11 CET 2007
On Fri, 2007-11-09 at 18:55 +0000, Prof Brian Ripley wrote:
> I think Bert's point is important: I picked up a student on it in a case
> study presentation on this week because I could think of three
> interpretations, none strictly confidence intervals. I think 'tolerance
> interval' is fairly standard for prediction of a random quantity: see
> ?predict.lm.
>
I think prediction interval is what is usually used. Regardless, I'm not
sure how "predict.lm" will be of much help because I asked specifically
about BLUP's for random effects and the last time I checked lm did not
handle mixed effects models. Neither predict.lme and predict.lmer
provide intervals. Here is the code that I included in my original
e-mail. My simple question is, will this code correctly compute a
prediction interval for each subjects random effect? In particular, will
the code handle the bVar slot correctly? Some postings warned about
inappropriate access to slots. Here is the code that I asked about in my
original e-mail:
# OrthoFem has all the females from Orthodont from the nlme package
library(lme4)
fm1OrthF. <- lmer(distance~age+(age|Subject), data=OrthoFem)
lmer(distance~age+(age|Subject), data=OrthoFem)@bVar$Subject[2,2,]*
(attr(VarCorr(lmer(distance~age+(age|
Subject),data=OrthoFem)),"sc")^2)[1]
(attr(VarCorr(fm1OrthF.),"sc")^2)[1]
fm1.s <- coef(fm1OrthF.)$Subject
fm1.s.var <- fm1OrthF. at bVar$Subject*(attr(VarCorr(fm1OrthF.),"sc")^2)[1]
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))
> fm1.s
(Intercept) age
F10 14.48493 0.3758608
F09 17.26499 0.3529804
F06 16.77328 0.3986699
F01 16.95609 0.4041058
F05 18.36188 0.3855955
F07 17.28390 0.5193954
F02 16.05461 0.6336191
F08 19.40204 0.3562135
F03 16.35720 0.6727714
F04 19.02380 0.5258971
F11 19.13726 0.6498911
> fm1.s[,1]+outer(fm1.s0.s, c(-2,0,2))
[,1] [,2] [,3]
[1,] 12.21371 14.48493 16.75616
[2,] 14.99377 17.26499 19.53622
[3,] 14.50205 16.77328 19.04450
[4,] 14.68487 16.95609 19.22732
[5,] 16.09066 18.36188 20.63311
[6,] 15.01267 17.28390 19.55512
[7,] 13.78339 16.05461 18.32584
[8,] 17.13082 19.40204 21.67327
[9,] 14.08598 16.35720 18.62843
[10,] 16.75257 19.02380 21.29502
[11,] 16.86604 19.13726 21.40849
> fm1.s[,2]+outer(fm1.s0.a, c(-2,0,2))
[,1] [,2] [,3]
[1,] 0.1738325 0.3758608 0.5778890
[2,] 0.1509522 0.3529804 0.5550087
[3,] 0.1966417 0.3986699 0.6006982
[4,] 0.2020775 0.4041058 0.6061340
[5,] 0.1835672 0.3855955 0.5876237
[6,] 0.3173671 0.5193954 0.7214236
[7,] 0.4315909 0.6336191 0.8356474
[8,] 0.1541852 0.3562135 0.5582417
[9,] 0.4707432 0.6727714 0.8747997
[10,] 0.3238688 0.5258971 0.7279253
[11,] 0.4478629 0.6498911 0.8519194
This web page describes "bVar":
http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/lme4/html/lmer-class.html
bVar:
A list of the diagonal inner blocks (upper triangles only) of
the positive-definite matrices on the diagonal of the inverse of
ZtZ+Omega. With the appropriate scale factor (and conversion to
a symmetric matrix) these are the conditional
variance-covariance matrices of the random effects.
Rick B.
More information about the R-help
mailing list