简体   繁体   中英

Line plot of mixed models / lsmeans results (with ggplot?)

I have longitudinal repeated measures on individuals over 4 timepoints. Following a mixed models analysis with time as fixed effect and random slopes I have used lsmeans to estimate the mean values at each time point as well as 95% confidence intervals. I would now like to plot a line graph with time points (x) and mean values of my outcome variable (y) with the CIs. Can I use eg ggplot to plot the results that I got from lsmeans? Or is there another smart way to plot this?

The results that I get from lsmeans, and that I would like to plot (lsmean, lower.CL, upperCL over time), are:

$lsmeans
time    lsmean        SE df  lower.CL upper.CL
0    21.967213 0.5374422 60 20.892169 23.04226
1    16.069586 0.8392904 60 14.390755 17.74842
2    13.486802 0.8335159 60 11.819522 15.15408
3     9.495137 0.9854642 60  7.523915 11.46636

Confidence level used: 0.95 

Is this what you meant?

# To convert from lsmeans output (d <- lsmeans(paramaters))
d <- summary(d)$lsmeans[c("lsmean", "lower.CL", "upper.CL")]

library(ggplot2)
ggplot(d, aes(time)) +
    geom_line(aes(y = lsmean)) +
    geom_errorbar(aes(ymin = lower.CL, ymax = upper.CL),
                  width = 0.2) +
    geom_point(aes(y = lsmean), size = 3, 
               shape = 21, fill = "white") +
    labs(x = "Time", y = "ls mean",
         title = "ls mean result over time") +
    theme_bw()

脏溶液

To summarize, the whole code that will give you the estimates and plot of the mixed model is:

## random slope model
summary(model <- lme(outcome ~ time, random = ~1+time|ID, data = data, 
na.action = na.exclude, method = "ML"))

## pairwise comparisons of timepoints
install.packages("lsmeans")
library(lsmeans)
lsmeans(model, pairwise~time, adjust="tukey")

### Draw the picture
d <- summary(lsmeans(model, ~time))

library(ggplot2)
ggplot(d, aes(time)) +
  geom_line(aes(y = lsmean, group = 1)) +
  geom_errorbar(aes(ymin = lower.CL, ymax = upper.CL), width = 0.2) +
  geom_point(aes(y = lsmean), size = 3, shape = 21, fill = "white") +
  labs(x = "Time", y = "ls mean", title = "ls mean result over time") +
  theme_bw()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM