如何呈现包含时变协变量的生存数据并使模型适合R

时间:2017-05-12 14:08:35

标签: r machine-learning statistics dataset survival-analysis

我想使用名为aalen()的R包中的timereg函数执行包含时变协变量的生存分析。但是,我仍然对如何在数据框中显示数据以及如何指定模型公式感到困惑。

这是一个组成的数据集:

subject_id survival_time体重高度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的单位为年,则感兴趣的事件发生在第7年的主题1上。
  5. 主题2和3都是正确的审查案件。
  6. 属于同一主题的每个跟进都可以通过survival_time订购。
  7. 最后,我的问题列表(即使您没有得到所有答案,或者我的解决方案是正确的,请不要犹豫,发表评论):

    1. 我是否正确提供包含时变协变量的生存数据?
    2. 如果第一个问题的答案是“否”,那么请您指出问题是什么并提供一些解释?
    3. 假设数据集正常,那么如何指定模型公式并适合aalen模型(或包含时变协变量的任何其他模型)?是这样的:
    4. aalen(formula = Survf(survival_time, outcome_indicator) ~ const(height) + weight, data = data_set, id = data_set$subject_id)

      其中Survf()函数用于组合两个与结果相关的变量; const()用于表示随时间变化的协变量,保留其他协变量; data_set是数据框的名称;并且id参数用于关联同一主题的不同行?

1 个答案:

答案 0 :(得分:0)

这可能不是表示这些数据的正确方法。从变量survival_time的排序来看,这些是协变量变化的群组时间。您需要一个滞后的事件时间来指示观察的“开始”,对于第一个患者记录设置为0。现在,您对数据进行格式化的方式已经使分母时间平方,降低了发生率,并将风险比减弱到零。

拿第一个参与者:事实上他们从0到7被观察。第一个记录是0到3,下一个:3到4,最后4到7.你在哪里明确告诉R? R不知道这些记录属于同一个人。 R现在认为有3人随后累计3 + 4 + 7 = 14年有1个事件而不是7年有1个事件(发病率从14 ppy到7 ppy)。