如何使用 R 中的多个事件构建用于生存分析的数据?
How to structure data for survival analysis with multiple events in R?
背景
我有一个项目,我想比较一组接受处方药治疗的人 Y 发生健康事件的时间 X 和其他方面相似但未接受治疗的组(分别为 X=1 和 X=0),同时控制对于一组协变量 C.
我要回答这个问题的数据是某个地理区域在 7 年时间间隔内的健康保险索赔(public 保险)。
- 数据集中的每一行代表一个声明。
- 事件Y被编码为诊断代码,而治疗X被编码为我使用的一种药物序列号确定处方药的国家监管机构。
- 每个患者都使用唯一的
ID
编号进行编码。
- 协变量 C 出现在患者提出索赔的每一行中。因此,例如,他们的地理区域
geo
,一个 3 位数代码,将出现在某个 ID
拥有的每个声明中。
因为患者能够经历多个事件并且可以不止一次出现在数据库中(有或没有符合条件的暴露或事件),我选择了 Cox 模型作为我的分析方法,该模型在 ID
来说明主体内(within-ID
)的相关性。不过,我不是生存分析方面的专家,而且我从未做过任何随机效应方面的工作。我将使用其 survival
包和方法分析 R
中的数据。
问题
我不确定如何组织我的数据来识别暴露者和发生事件的人。具体来说,我是否只在声明中标记 X=1 one one claim X=1 的人他们的曝光出现在什么地方,或者他们的每一个声明? (同样适用于结果:符合条件的结果是在所有索赔中标记为 Y=1,还是仅在出现相关诊断代码的索赔中?)
为了说明,这里有一个虚拟数据集代表第一种方法。我们称之为 选项 1:
ID | claim_date | geo | drug | exposed | diagnostic_cd | event |
-------+-------------+------|-------|---------|---------------|---------|
001 | 2011-01-30 | 123 | | 0 | LZ13 | 1 |
001 | 2012-04-12 | 123 | D57 | 1 | SS24 | 0 |
001 | 2014-06-27 | 123 | A60 | 0 | | 0 |
002 | 2017-09-03 | 456 | D57 | 1 | MN45 | 1 |
002 | 2018-12-25 | 456 | C08 | 1 | MN45 | 1 |
在这里,暴露在指标变量 exposed
中被标记为这样,并且它们仅在具有“暴露事件”的声明中被标记 - 符合条件 drug
。 ID
001 是 D57,ID
002 是 D57 和 C08。指标 event
也是如此,当存在符合条件的 diagnostic_cd
时等于 1(LZ13 代表 ID
001,MN45 代表 ID
002。)
相比之下,这是另一种方法 -- 选项 2:
ID | claim_date | geo | drug | exposed | diagnostic_cd | event |
-------+-------------+------|-------|---------|---------------|---------|
001 | 2011-01-30 | 123 | | 1 | LZ13 | 1 |
001 | 2012-04-12 | 123 | D57 | 1 | SS24 | 1 |
001 | 2014-06-27 | 123 | A60 | 1 | | 1 |
002 | 2017-09-03 | 456 | D57 | 1 | MN45 | 1 |
002 | 2018-12-25 | 456 | C08 | 1 | MN45 | 1 |
在这里,任何符合条件的drug
或diagnostic_cd
将在每一行标记你exposed=1
或event=1
你的 ID
出现了。
我的直觉是 Option 1
是要走的路,但我真的无法解释为什么,我坐在这里怀疑自己。
此外,这可能是一个更适合 CrossValidated 的问题,所以请告诉我是否是这种情况,我会post 解决。
有什么想法吗?
最常见的方法是将暴露(在本例中为二进制暴露)编码为 1 或 0,并将事件编码为 1 或 0。这意味着选项 1 似乎是对任何生存建模的更标准方法分析数据集。
有很多方法可以分析重复事件的生存分析,脆弱模型只是其中之一。脆弱模型的一个问题是它假定所有事件都是平等的,但情况可能并非总是如此。 DAF Amorim 在 International Journal of Epidemiology (https://academic.oup.com/ije/article/44/1/324/654595) 上发表的一篇优秀教程是这篇论文。作者在 R
、Stata
和 SAS
.
中提供了示例数据集和代码
您的数据似乎缺少的是开始日期,这对于任何生存分析都是必不可少的。
背景
我有一个项目,我想比较一组接受处方药治疗的人 Y 发生健康事件的时间 X 和其他方面相似但未接受治疗的组(分别为 X=1 和 X=0),同时控制对于一组协变量 C.
我要回答这个问题的数据是某个地理区域在 7 年时间间隔内的健康保险索赔(public 保险)。
- 数据集中的每一行代表一个声明。
- 事件Y被编码为诊断代码,而治疗X被编码为我使用的一种药物序列号确定处方药的国家监管机构。
- 每个患者都使用唯一的
ID
编号进行编码。 - 协变量 C 出现在患者提出索赔的每一行中。因此,例如,他们的地理区域
geo
,一个 3 位数代码,将出现在某个ID
拥有的每个声明中。
因为患者能够经历多个事件并且可以不止一次出现在数据库中(有或没有符合条件的暴露或事件),我选择了 Cox 模型作为我的分析方法,该模型在 ID
来说明主体内(within-ID
)的相关性。不过,我不是生存分析方面的专家,而且我从未做过任何随机效应方面的工作。我将使用其 survival
包和方法分析 R
中的数据。
问题
我不确定如何组织我的数据来识别暴露者和发生事件的人。具体来说,我是否只在声明中标记 X=1 one one claim X=1 的人他们的曝光出现在什么地方,或者他们的每一个声明? (同样适用于结果:符合条件的结果是在所有索赔中标记为 Y=1,还是仅在出现相关诊断代码的索赔中?)
为了说明,这里有一个虚拟数据集代表第一种方法。我们称之为 选项 1:
ID | claim_date | geo | drug | exposed | diagnostic_cd | event |
-------+-------------+------|-------|---------|---------------|---------|
001 | 2011-01-30 | 123 | | 0 | LZ13 | 1 |
001 | 2012-04-12 | 123 | D57 | 1 | SS24 | 0 |
001 | 2014-06-27 | 123 | A60 | 0 | | 0 |
002 | 2017-09-03 | 456 | D57 | 1 | MN45 | 1 |
002 | 2018-12-25 | 456 | C08 | 1 | MN45 | 1 |
在这里,暴露在指标变量 exposed
中被标记为这样,并且它们仅在具有“暴露事件”的声明中被标记 - 符合条件 drug
。 ID
001 是 D57,ID
002 是 D57 和 C08。指标 event
也是如此,当存在符合条件的 diagnostic_cd
时等于 1(LZ13 代表 ID
001,MN45 代表 ID
002。)
相比之下,这是另一种方法 -- 选项 2:
ID | claim_date | geo | drug | exposed | diagnostic_cd | event |
-------+-------------+------|-------|---------|---------------|---------|
001 | 2011-01-30 | 123 | | 1 | LZ13 | 1 |
001 | 2012-04-12 | 123 | D57 | 1 | SS24 | 1 |
001 | 2014-06-27 | 123 | A60 | 1 | | 1 |
002 | 2017-09-03 | 456 | D57 | 1 | MN45 | 1 |
002 | 2018-12-25 | 456 | C08 | 1 | MN45 | 1 |
在这里,任何符合条件的drug
或diagnostic_cd
将在每一行标记你exposed=1
或event=1
你的 ID
出现了。
我的直觉是 Option 1
是要走的路,但我真的无法解释为什么,我坐在这里怀疑自己。
此外,这可能是一个更适合 CrossValidated 的问题,所以请告诉我是否是这种情况,我会post 解决。
有什么想法吗?
最常见的方法是将暴露(在本例中为二进制暴露)编码为 1 或 0,并将事件编码为 1 或 0。这意味着选项 1 似乎是对任何生存建模的更标准方法分析数据集。
有很多方法可以分析重复事件的生存分析,脆弱模型只是其中之一。脆弱模型的一个问题是它假定所有事件都是平等的,但情况可能并非总是如此。 DAF Amorim 在 International Journal of Epidemiology (https://academic.oup.com/ije/article/44/1/324/654595) 上发表的一篇优秀教程是这篇论文。作者在 R
、Stata
和 SAS
.
您的数据似乎缺少的是开始日期,这对于任何生存分析都是必不可少的。