我正在尝试对订阅的客户生命周期进行建模。由于数据被审查,我将使用 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

..为了养活生存模型:
obj <- with(subscriptions, Surv(time=tenure_in_months, event=status, type="right"))
fit <- survfit(obj~1, data=subscriptions)
plot(fit)

对于 consored 情况,即今天订阅仍然有效的情况,我应该在 tenure_in_months 变量中放什么 - 应该是直到今天的任期还是应该是 NA?

最佳答案

如果缺少结束日期意味着订阅仍然有效,那么您需要将当前日期之前的时间作为审查日期。

NA 不适用于生存对象。我认为这些情况将被省略。那不是你想要的!因为这些病例包含有关生存的重要信息。

获取事件发生时间的 SQL 代码(在查询的 SELECT 部分中使用)

DATEDIFF(M,start_date,ISNULL(end_date,GETDATE()) AS tenure_in_months

顺便提一句:
我会使用天数差异来进行分析。将时间四舍五入到几个月是没有意义的。

10-05 21:09