如何将删失数据输入R的生存模型?

如何将删失数据输入R的生存模型?,r,survival-analysis,R,Survival Analysis,我正在尝试对订阅的客户生命周期进行建模。由于数据被截取,我将使用R的生存包来创建生存曲线 原始订阅数据集如下所示 id start_date end_date 1 2013-06-01 2013-08-25 2 2013-06-01 NA 3 2013-08-01 2013-09-12 id tenure_in_months status(1=cancelled, 0=active) 1 2 1 2 ?

我正在尝试对订阅的客户生命周期进行建模。由于数据被截取,我将使用R的生存包来创建生存曲线

原始订阅数据集如下所示

id  start_date  end_date
1   2013-06-01  2013-08-25
2   2013-06-01  NA
3   2013-08-01  2013-09-12
id  tenure_in_months status(1=cancelled, 0=active)
1   2                1
2   ?                0
3   1                1
我把它弄得像这样

id  start_date  end_date
1   2013-06-01  2013-08-25
2   2013-06-01  NA
3   2013-08-01  2013-09-12
id  tenure_in_months status(1=cancelled, 0=active)
1   2                1
2   ?                0
3   1                1
…为了满足生存模型的需要:

obj <- with(subscriptions, Surv(time=tenure_in_months, event=status, type="right"))
fit <- survfit(obj~1, data=subscriptions)
plot(fit)

对于相关案例,即订阅今天仍处于活动状态的案例,我应该在任期变量中输入什么?是截止到今天的任期,还是NA?

如果缺少结束日期意味着订阅仍处于活动状态,则需要将截止到当前日期的时间作为审查日期

NA不会使用生存物体。我认为这些案例将被省略。那不是你想要的!因为这些病例包含了关于生存的重要信息

获取查询的SELECT部分中事件使用的时间的SQL代码

DATEDIFF(M,start_date,ISNULL(end_date,GETDATE()) AS tenure_in_months
顺便说一句:
我会使用天数的差异来进行分析。把时间四舍五入到几个月是没有意义的。

首先,我不同意前面的答案。对于今天仍处于活动状态的订阅,不应将其视为直到今天为止的保留期,也不应视为NA。我们对这些订阅有什么确切的了解?我们知道他们的任期一直到今天,这相当于这些观察的任期,虽然我们不知道他们到底有多长,但比他们到今天的任期要长

在生存分析中,这种情况被称为右审查。见:

因此,您的数据需要从

id  start_date  end_date
1   2013-06-01  2013-08-25
2   2013-06-01  NA
3   2013-08-01  2013-09-12
致:

然后,需要从以下位置更改R surv对象:

Surv(time=tenure_in_months, event=status, type="right")
致:

有关更多语法详细信息,请参阅。可以找到计算细节的非常好的摘要:

区间删失数据可以用两种方式表示。对于第一次使用,类型=间隔,代码如上所示。在这种用法中,除非event=3,否则将忽略time2参数的值。第二种方法是将每个观测视为一个时间间隔,其中-无穷大表示左删失,t无穷大表示右删失,t,t表示精确,t1,t2表示间隔。这是type=interval2使用的方法,NA代替无穷大。事实证明,它更有用

你需要知道收集数据的日期。id 2的任期(以月为单位)应为该日期减去2013-06-01


否则我相信你对数据的编码是正确的。id 2的状态为0表示它是右删失的,这意味着它的生存期有下限,但没有上限。

代码是SQL。我以为是你自己做的,所以你可以调整。啊,我想你是对的。右审查员应表示事件时间[time,+inf,但在R中,我认为,它就像使用type='interval'时的精确事件。需要interval2,请参见编辑。我相信您输入的id 2是非常错误的。您需要知道NA是何时测量的。t1条目应该是该时间减去2013-06-01。应该直到您收集数据的那一天,我猜就是今天。