gpt4 book ai didi

r - 当缺少结果时,使用 nlme 正确建模纵向相关性 (R)

转载 作者:行者123 更新时间:2023-12-04 13:29:29 28 4
gpt4 key购买 nike

我有长格式的纵向数据,对于前两个主题,它看起来像这样:

  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将采用 M1、M2、...、M6 的前 6 个测量值,而不是 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必须包含一系列连续整数才能成功用作相关结构中的时间协变量。

关于r - 当缺少结果时,使用 nlme 正确建模纵向相关性 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65935686/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com