如何呈现包含时间变化协变量的生存数据并在R中拟合模型

我想使用R包timereg中的aalen()函数进行包含时间变化协变量的生存分析。然而,我仍然不清楚数据在数据框中应该如何呈现,以及模型公式应该如何指定。

这里是一个虚构的数据集:

subject_id survival_time weight height outcome_indicator
1                               3           65      1.8      0
1                               4           68      1.8      0
1                               7           70      1.8      1
2                               2           55      1.6      0
2                               9           53      1.6      0
3                               2           62      1.7      0
3                               3           65      1.7      0
3                               5           64      1.7      0
3                               6           66      1.7      0

以下是一些解释:

  1. 有3个研究对象,由subject_id变量标识,分别被跟踪了3次、2次和4次。
  2. weight是一个随时间变化的协变量。
  3. height与时间无关,因此每个对象在每次跟踪时保持不变。
  4. 假设survival_time的单位是年,那么对象1在第7年发生了感兴趣的事件。
  5. 对象2和3都是右截尾的案例。
  6. 属于同一对象的每次跟踪可以通过survival_time排序。

最后,我的几个问题(即使您没有所有答案,或者我的解决方案是正确的,也请不要犹豫留下评论):

  1. 关于包含时间变化协变量的生存数据的呈现方式,我对吗?
  2. 如果第一个问题的答案是“不是”,那么请指出问题所在并提供一些解释?
  3. 假设数据集没问题,那么我如何指定模型公式并拟合aalen模型(或任何其他包含时间变化协变量的模型)?是否像这样:

aalen(formula = Survf(survival_time, outcome_indicator) ~ const(height) + weight, data = data_set, id = data_set$subject_id)

其中Survf()函数用于组合两个与结果相关的变量;const()用于表示时间不变的协变量,其他的协变量保持原样;data_set是数据框的名称;id参数用于将同一对象的不同行关联起来?


回答:

这很可能不是呈现这些数据的正确方式。从survival_time变量的排序来看,这些是协变量变化的队列时间。你需要一个滞后的时间来指示观察的“开始”,对于第一个患者记录设置为0。你现在的数据格式使得分母时间平方,降低了发病率,并使危险比向无效值衰减。

以第一个参与者为例:他们实际上是从0到7年被观察的。第一条记录是从0到3,接下来是从3到4,最后是从4到7。你在哪里明确告诉R这些信息?R并不知道这些记录属于同一个人。R现在认为有3个人被跟踪了总共3 + 4 + 7 = 14年,有1个事件,而不是7年有1个事件(发病率从每人年14下降到每人年7)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注