【发布时间】:2018-06-05 15:02:38
【问题描述】:
我正在尝试使用纵向设计来估算数据集中的数据。有两个预测变量(实验组和时间)和一个结果变量(分数)。聚类变量为 id。
这是玩具数据
set.seed(345)
A0 <- rnorm(4,2,.5)
B0 <- rnorm(4,2+3,.5)
A1 <- rnorm(4,6,.5)
B1 <- rnorm(4,6+2,.5)
A2 <- rnorm(4,10,.5)
B2 <- rnorm(4,10+1,.5)
A3 <- rnorm(4,14,.5)
B3 <- rnorm(4,14+0,.5)
score <- c(A0,B0,A1,B1,A2,B2,A3,B3)
id <- rep(1:8,times = 4, length = 32)
time <- rep(0:3, each = 8, length = 32)
group <- rep(c("A","B"), times =2, each = 4, length = 32)
df <- data.frame(id = id, group = group, time = time, score = score)
# plots
(ggplot(df, aes(x = time, y = score, group = group)) +
stat_summary(fun.y = "mean", geom = "line", aes(linetype = group)) +
stat_summary(fun.y = "mean", geom = "point", aes(shape = group), size = 3) +
coord_cartesian(ylim = c(0,18)))
# now place some NAs
df[sample(1:nrow(df), 10, replace = F),"score"] <- NA
df
如果我正确理解this post,在预测矩阵中我应该用-2 指定id 聚类变量,用1 指定两个固定预测变量time 和group。像这样
library(mice)
(ini <- mice(df, maxit=0))
(pred <- ini$predictorMatrix)
(pred["score",] <- c(-2, 1, 1, 0))
(imp <- mice(df,
method = c("", "", "", "2l.pan"),
pred = pred,
maxit = 1,
seed = 71152))
我想知道的是:
- 这是纵向随机截距插补模型吗?将 id 变量指定为
-2将其指定为“类”变量,但在 this mice primer 中,它建议对于多级模型,您应该在数据框中创建一个包含所有1的变量作为常量,然后通过预测矩阵中的2指定为随机截距。但是,这是基于2l.norm函数而不是2l.pan函数,所以我不确定我在哪里。2l.pan函数是否不需要此列,或者随机效应的规范? - 有什么方法可以指定纵向随机斜率模型,如果可以,如何指定?
【问题讨论】:
标签: r mixed-models r-mice