我在R中创建生存对象时遇到问题。我想模仿suscription客户的生存(月度数据),但是为了创建生存对象,我需要结合两种类型的审查:
经典的权利审查:一些客户进入了 观察期并尚未取消订阅(“死亡事件”)
左截断和右删失:其他客户输入 在观察期之前但未知的时候,因为没有 之前的历史表
当然我有事件案例(取消订阅)。但对我来说问题是如何在同一数据集中生成两种类型的生存对象,然后进行建模。我认为不考虑“截断”的情况会偏向并估计一些客户留下的长时间,所以我不想抛弃这些情况。
因此,我知道那些进入观察期的人的开始时间。但对于那些之前进入过的人来说,我只是将'0'作为他们的开始时间,而不是真正的(未知数)。
到目前为止,我已尝试过此代码:
1) survobj <- Surv(TIME, EVENT)
## i loose information of the truncated ones.
2) survobj <- Surv(ifelse(T0==0,NA,T0), T1, EVENT)
## will create "interval-censored" objects, not my case
3) survobj <- Surv(T0, data$T1, EVENT, type='counting')
## all objects will be "left truncated", not just the T0=0
提前感谢您的帮助。
答案 0 :(得分:0)
在持续时间内合并左右审查的一种方法是使用Surv
创建一个type = interval2
对象。正如survival
文档所说:
[...]将每个观察结果视为一个时间间隔,其中(-infinity,t)代表左删失,(t,infinity)代表删失,(t,t)代表精确,(t1,t2)代表一个间隔。这是用于类型= interval2的方法。无限值可以用实际无限(Inf)或NA表示。
因此,您需要在向量中为time
分配已知的持续时间(其中左检查例为NA
),在另一个向量中为time2
(其中右检查例为零)是NA
)。
讨论了类似的问题here。