没有看到您的数据很难,所以我会尝试使其通用。首先,在survival
包中使用数据框的两种主要方式:
裸骨
- ID - 用于识别每个分析单位(例如,患者、国家、组织)的唯一变量
- 事件 - 表示测试事件发生的二进制变量(例如,死亡、革命、破产)
- 时间- 直到事件或直到信息结束的时间(右删失)。Cox 模型最适合用于连续时间,但是当研究经过数年(特别是关于国家)时,每月的咒语可以做到。
- (经常)一些协变量
event
让我们使用一个虚构的模型,试图找出十年内陷入内战 (the ) 的国家(按月计算)的危险。使用不依赖于时间的单个协变量 ( previousCivilWar
) :
# the first country was censored before an event and the second
# experienced the event after 8 years
id time event prevCivilWar
1 120 0 0
2 96 1 1
添加时间相关协变量:方法 1
- 协变量- 在这种情况下,您需要知道原始值,以及它是否改变以及改变了什么 - 如果是,何时(在什么咒语)。
- 将时间变量更改为开始和结束- 当需要指示(任何)协变量的更改时间时
在这里,我们将添加二进制变量来表示 >40% 的贫困is40pov
:
id time1 time2 event prevCivilWar is40pov
1 0 80 0 0 0
1 80 120 0 0 1
2 0 24 0 1 0
2 24 60 0 1 1
2 60 96 1 1 1
使用时间相关协变量时,我们需要指定确切的时间范围,直到任何协变量发生任何变化。请注意,时间需要重叠。如果某个主题在任何协变量中没有变化,那么一行就足够了。
方法 2 - 最适合不断变化的协变量
这将包括ķ每个唯一 ID 的行数,因为有拼写(ķ如果被审查,则为行,如果事件之前发生,则更少)。因此,如果您有一个包含特定时间框架信息的数据库,请确定对您有意义的拼写长度(这在理论上是有意义的):如果协变量每小时更改 - 每小时更改一次,等等。 . 一旦你决定了拼写长度(例如,月份)和总时间(例如,十年),每个 ID 将具有 <=120咒语。
如果需要,为时间相关协变量创建带有空( 、 或其他)数据的纵向数据集NA
,0
并为每个法术的日期/时间创建两个额外的实用程序列。然后您可以访问数据库并在这些日期/时间获取协变量的特定值并填写它。如果某些行的协变量没有变化,则可以。你最终会得到类似的东西:
# The variable pov is the poverty percent of population and measured monthly
id time1 time2 event prevCivilWar pov
1 0 1 0 0 0.34
1 1 2 0 0 0.34
...
1 79 80 0 0 0.43
...
1 119 120 1 0 0.41
2 0 1 0 1 0.25
...
2 23 24 0 1 0.42
...
2 95 96 1 1 0.58
有关时间相关协变量和系数的更多信息,请参阅 Therneau、Crowson 和 Atkinson 的 2016 Vignette。