[R] prediction intervals from a mixed-effects models?

Spencer Graves spencer.graves at pdf.com
Sun Apr 13 19:10:50 CEST 2008


      How can I get prediction intervals from a mixed-effects model?  
Consider the following example: 

library(nlme)
fm3 <- lme(distance ~ age*Sex, data = Orthodont, random = ~ 1)
df3.1 <- with(Orthodont, data.frame(age=seq(5, 20, 5),
                    Subject=rep(Subject[1], 4),
                    Sex=rep(Sex[1], 4)))
predict(fm3, df3.1, interval='prediction')
#      M01      M01      M01      M01
# 22.69012 26.61199 30.53387 34.45574

# NOTE:  The 'interval' argument to the 'predict' function was ignored. 
# It works works for an 'lm' object, but not an 'lme' object. 

      One way to do this might be via mcmcsamp of the corresponding 
'lmer' model: 

library(lme4)
set.seed(3)
samp3r <- mcmcsamp(fm3r, n=10000)
samp3r[1:2,]

      Then use library(coda) to check convergence and write a function 
to simulate a single observation from each set of simulated parameters 
and compute quantile(..., c(.025, .975)) for each prediction level 
desired. 

      However, before I coded that, I thought I would ask if some easier 
method might be available. 

      Thanks,
      Spencer
p.s.  RSiteSearch("lme prediction intervals") produced 3 hits including 
2 from James A Rogers over 3 years ago.  In one, he said, "I am not 
aware of any published R function that gives you prediction intervals or 
tolerance intervals for lme models." 
(http://finzi.psych.upenn.edu/R/Rhelp02a/archive/42781.html)   In the 
other, he provided sample code for prediction or tolerance intervals of 
lme variance components.  
(http://finzi.psych.upenn.edu/R/Rhelp02a/archive/44675.html)



More information about the R-help mailing list