我正在尝试对订阅的客户生命周期进行建模。由于数据被审查,我将使用 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
顺便提一句:
我会使用天数差异来进行分析。将时间四舍五入到几个月是没有意义的。