Second, without:
df$predict <- predict(m9, newdata = df, re.form = NA)
ggplot(df[1:31,], aes(MINUTES, predict, color = factor(ID)))
geom_line(color = 'black')
geom_point(data = dat, aes(y = r))
guides(color = guide_none())
If you were actually looking for a smoothed fit using splines, then you could do something like:
m9 <- lmer(r ~ splines::bs(MINUTES, knots = c(5)) ( 1 | ID) ,
data = dat )
df <- data.frame(MINUTES = rep(seq(0, 30, 0.1), length(unique(dat$ID))),
ID = rep(unique(dat$ID), each = 301))
df$predict <- predict(m9, newdata = df, re.form = NA)
ggplot(df[1:301,], aes(MINUTES, predict, color = factor(ID)))
geom_line(color = 'black', linetype = 2)
geom_point(data = dat, aes(y = r))
guides(color = guide_none())
CodePudding user response:
To get predictions with confidence intervals, you should use one of the add-on packages (effects, ggeffects, etc.) that computes confidence intervals for lmer models (note that these CIs are conditioned on the random effects estimates, i.e. they take account only of uncertainty in the fixed-effect coefficient estimates):
library(ggeffects)
pdat <- ggpredict(m9)
ggplot(dat, aes(MINUTES))
geom_point(aes(y = r, color = factor(ID)))
theme(legend.position = "none")
geom_line(data = pdat$MINUTES, aes(x = x, y = predicted))
geom_ribbon(data = pdat$MINUTES, aes(x = x, ymin = conf.low, ymax = conf.high), alpha = 0.2)




