我想使用名为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
以下是一些解释:
subject_id
变量确定,并分别进行了3次,2次,4次。weight
是一个随时间变化的协变量。height
与时间无关,因此对于每个主题,每次跟进都保持不变。survival_time
的单位为年,则感兴趣的事件发生在第7年的主题1上。survival_time
订购。最后,我的问题列表(即使您没有得到所有答案,或者我的解决方案是正确的,请不要犹豫,发表评论):
aalen
模型(或包含时变协变量的任何其他模型)?是这样的: aalen(formula = Survf(survival_time, outcome_indicator) ~ const(height) + weight, data = data_set, id = data_set$subject_id)
其中Survf()
函数用于组合两个与结果相关的变量; const()
用于表示随时间变化的协变量,保留其他协变量; data_set
是数据框的名称;并且id
参数用于关联同一主题的不同行?
答案 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)。