如何解决当缺少结果时,使用 nlme 正确建模纵向相关性 (R)
我有长格式的纵向数据,前两个主题看起来像这样:
id X M Y
1 1 0 M1 2.53
2 1 0 M2 1.45
3 1 0 M3 1.17
4 1 0 M5 0.78
5 1 0 M7 -0.95
6 1 0 M9 -0.07
7 2 1 M1 -0.81
8 2 1 M2 -1.66
9 2 1 M3 -0.01
10 2 1 M5 0.39
M1 到 M9 表示九个不同的固定测量场合。与纵向数据一样,缺少一些结果 Y
。受试者 id
1 错过了 M4、M6、M8 的结果,id
2 错过了 M4 和 M6 到 M9。数据中的其他主体在不同点上遗漏了数据。
一个随机截距模型拟合 lme
与场合和协变量 X
作为固定效果是
lme(fixed = Y ~ M + X,random = ~ 1 | id,data = dat)
众所周知,这会隐含地产生复合对称相关结构,并且只要缺失的结果是 MAR,估计值就是一致的。如果复合对称性不合理,则可以选择添加随机斜率或指定不同的相关结构,例如非结构化。
lme(fixed = Y ~ M + X,data = dat,correlation = corSymm())
然后在输出中我得到 M1 到 M9 的组内相关矩阵。但是,lme
如何知道哪些时间点 M
是相邻的,即排序是什么以及两个结果不相邻的位置?例如,对于 id 1,看起来 lme
将其前 6 个测量值作为 M1、M2、...、M6,而不是应该是 M1、M2、M3、M5、M7,和M9。所以我担心非结构化相关矩阵被错误地估计。有没有办法将信息传递给 lme
每个 Y 关注的时间点?
解决方法
如果M1到M9是固定的测量场合,可以识别为时间,作为连续变量处理。
library(nlme)
# arbitrary time selected from the measurement occasion labels
dat$T <- as.numeric(sub("M","",dat$M))
lme(fixed = Y ~ T + X,random = ~ 1 | id,data = dat)
或者,corSymm
结构可以包含有关时间协变量的信息并定义测量的顺序。
corSymm(form = ~ T)
请注意,T
必须包含一系列连续整数才能成功用作相关结构中的时间协变量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。