假设您正在拟合以下增长模型,该模型具有线性 (age0)、二次 (age2) 和三次 (age3) 固定效应预测变量,然后是 age0 的随机斜率:
m2 <- lmer(weight ~ female + age0 + age2 + age3 + (age0 | id), growth, REML=FALSE)
您可以从该模型中提取总体水平和个体水平的预测,如下所示:
growth$predm2 <- predict(m2,re.form=NA) ## population level
growth$predm2fit <- predict(m2) ## individual level
首先,你可以绘制人口趋势图,这里我分别为男孩和女孩绘制:
g1 <- ggplot(growth,aes(age0, weight)) +
geom_point() +
facet_grid(.~female) #
g1 + geom_line(colour="red",aes(y=predm2))
现在您可以绘制单独的趋势线,其中考虑了随机截距和斜率:
g1 + geom_line(colour="red",aes(y=predm2)) +
geom_line(colour="dark grey",aes(y=predm2fit,group=id)) # fitted lines
附:您可以自己获取这些数据来使用它:
library(haven)
growth <- read_dta("http://www.stata-press.com/data/mlmus2/asian.dta")
growth <- growth %>% mutate(age0 = age-min(age), female = gender-1)
as_data_frame(growth)
P.P.S.,如果您想随机抽取案例的子集,您可以使用 sample 函数作为 filter in dplyr 的一部分:
#Sampling 50 students
JSP_long50 <- JSP_long %>%
mutate(StudentID=as.factor(StudentID)) %>%
filter(StudentID %in% sample(levels(StudentID),50))