当缺少结果时使用 nlme 正确建模纵向相关性 (R)
Modeling longitudinal correlation correctly with nlme when there are missing outcomes (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, random = ~ 1 | id , 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
必须包含一系列连续整数才能成功用作相关结构中的时间协变量。
我有长格式的纵向数据,前两个科目看起来像这样:
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, random = ~ 1 | id , 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
必须包含一系列连续整数才能成功用作相关结构中的时间协变量。