Dan M.
Dan M.

Reputation: 1616

Is there a way to extrapolate predicted data from lmer

I am using lmer to fit a multilevel polynomial regression model with several fixed effects (including subject-specific variables like age, short-term memory span, etc.) and two sets of random effects (Subject and Subject:Condition). Now I would like to predict data for a hypothetical subject with particular properties (age, short-term memory span, etc.). I fit the model (m) and created a new data frame (pred) that contains my hypothetical subject, but when I tried predict(m, pred) I got an error:

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "mer"

I know I could use the brute-force method of extracting fixed effects from my model and multiplying it all out, but is there a more elegant solution?

Upvotes: 2

Views: 3052

Answers (1)

jknowles
jknowles

Reputation: 479

You can do this type of extrapolated prediction easily with the merTools package for R: http://www.github.com/jknowles/merTools

merTools includes a function called predictInterval which provides robust prediction capabilities for lmer and glmer fits. Specifically, you can use this function to predict extrapolated data, and to obtain prediction intervals that account for the variance in both the fixed and random effects, as well as the residual error of the model.

Here's a quick code example:

library(merTools)
m1 <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)
predOut <- predictInterval(m1, newdata = sleepstudy, n.sims = 100)
# extrapolated data
extrapData <- sleepstudy[1:10,]
extrapData$Days <- 20
extrapPred <- predictInterval(m1, newdata = extrapData)

Upvotes: 2

Related Questions