Skip to content
Prev 14816 / 20628 Next

Confidence intervals on predictions for a non-linear mixed model (nlme)

Hi Piet,

as already pointed out on stackexchange, there is no direct way with nlme
to determine the distribution of the parameters so that we don't know if a
normal approximation is justified.

One solution to overcome this problem is to use Bayesian methods. With the
brms package, for instance, this looks as follows:

library(nlme)
library(brms)

# define some reasonable priors
prior = c(set_prior("normal(80, 20)", nlpar = "Asym"),
          set_prior("normal(0, 10)", nlpar = "R0"),
          set_prior("normal(0, 5)", nlpar = "lrc"))

# fit the model
fm2 <- brm(height ~ Asym+(R0-Asym)*exp(-exp(lrc)*age),
           data = Loblolly, prior = prior,
           nonlinear = list(Asym ~ 1 + (1|Seed), R0 ~ 1, lrc ~ 1))
summary(fm2)
plot(fm2)

# effect of age without RE variance
marginal_effects(fm2)
# effect of age with RE variance
marginal_effects(fm2, re_formula = NULL)


Using brms may be a bit cumbersome at start as you need a C++ compiler at
run time. That is you need Rtools on Windows or Xcode on Mac (see
https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started#prerequisites)
for more details.

Hope this will help you in getting closer to answering your research
question.

- Paul

2016-08-22 14:23 GMT+02:00 Piet van den Berg <pvdberg1 at gmail.com>: