具有时间相关变量的重复事件数据的数据结构和函数调用

机器算法验证 r 生存 cox模型
2022-03-24 06:46:44

我正在尝试估计 2 种药物 ( drug1, drug2) 对患者跌倒 ( event) 可能性的影响。患者可以不止一次跌倒,并且可以在任何时候穿上或取下药物。

我的问题是关于时间段(天)的数据应该如何构建,特别是天之间是否需要重叠。我认为我的结构错误有两个原因,第一个是看似不正确的N. 在时间段为一天(即time1=4time2=4)的情况下,我也遇到了一些错误,并且不确定应该如何编码。后续条目的开始时间应该是前一个条目的停止时间吗?我已经尝试过两种方式(有和没有重叠),虽然重叠消除了警告,但N仍然不正确。

Warning message:
In Surv(time = c(0, 2, 7, 15, 20, 0, 18, 27, 32, 35, 39, 46, 53,  :
  Stop time must be > start time, NA created

现在我已经设置了下一个条目的开始是第二天的数据。独特的患者由他们的chart numbers.

Time1    Time2    Drug1    Drug2   Event    ChartNo
    0        2        1        0       0        123
    3       10        1        1       1        123
   11       14        1        1       1        123
    0       11        0        1       0        345
    0       19        1        0       1        678
    0        4        0        1       0        900
    5       18        1        1       0        900

患者 123 在第 2 天开始时服用药物 1,之后他们添加了药物 2。他们从第 3 天到第 10 天服用两种药物,然后第一次跌倒,然后在第 14 天第二次跌倒,同时仍然服用两种药物。患者 345 服用药物 11 天没有跌倒(然后被审查)等。

实际估计是这样的:

S <- Srv(time=time1, time2=time2, event=event)
cox.rms <- cph(S ~ Drug1 + Drug2 + cluster(ChartNo), surv=T)

我主要担心的是n我的分析报告为2017(数据中的行数),而实际上我只有314唯一的患者。我不确定这是正常的还是我在此过程中犯的一些错误的结果。

> cox.rms$n
Status
No Event    Event 
    1884      133 

coxph()从生存包中使用时也是如此。

 n= 2017, number of events= 133

然而,事件的数量是正确的。

这篇文章似乎用我描述的“重叠”设置了它,但我不确定N,而且它们似乎没有聚集在ID.

1个回答

您的数据格式正确。

由于反复发生的事件和药物的增加的复杂性是一个随时间变化的协变量,您有每个患者的多个记录。您使用打印的输出head有助于理解这些数据。

分析重复事件以及随时间变化的协变量的典型方法是将数据格式化为“长”格式,其中每一行代表风险协变量观察的区间。例如,我们看到患者 123 从时间 0 到时间 2 单独服用药物 1,然后从时间 3 开始同时服用药物 1 和药物 2。此时,他们没有经历过跌倒,因此他们从 0-2 观察那时会被审查,因为我们不知道如果他们继续单独服用药物 1,他们的跌倒还会持续多久。在时间 3,他们重新进入编码为患者的队列,患者同时服用两种药物 7 个时间单位,之后他们经历了第一次跌倒。仅在 4 个时间单位后,他们再次使用同一种药物组合。

记录数不是对同类群组数据的有用汇总。行数远大于患者数也就不足为奇了。取而代之的是,将从开始到停止的时间相加,并将其记录为风险人员的数量。队列分母有助于了解发病率。总结患者的原始数量也很有用,但请记住数据是“长”格式,因此少于数据集中的行数。

对于该错误,我认为您可能需要在“停止”日期中添加 1 个单位。如果患者 123 在第 0、1 和 2 天服用药物 1,然后在第 3 天开始服用药物 2,那么他们在服用药物 1 时经历了 3 天的跌倒风险。但是,2-0 = 2,这是不正确的分母。

“集群”参数所做的(通常)是强加一个脆弱性,这是一种随机截距,它解释了可归因于几个未测量风险因素的比例风险差异。我不经常进行有弱点的分析。您可以省略“集群”命令并将结果解释为发生率。您可以交替拟合 cox 模型,直到所有患者第一次跌倒,并将风险比解释为风险比。我认为脆弱的结果应该介于这两者之间,我一直不太清楚解释应该是什么。