作为在线零售连锁店Mazon的分析团队负责人,收到了一批有限的优惠,每个客户成本为200美元。如果客户在其整个生命周期内至少消费20000美元,那么这个优惠就能收支平衡。希望尽早锁定那些有可能消费20000美元的客户。拥有他们的会员卡等级信息(白金卡成本较高,金卡成本较低)以及他们对上次营销活动的反应率。已经用这个优惠针对客户进行了一年的营销。现在,希望从过去反应数据中学习,并据此进行针对性营销。需要找出应该针对哪个客户群体进行这个优惠。由于依赖变量是响应活动的时间,这包含了尚未响应的人的删失数据,因此需要使用生存分析。
原始数据包括一个唯一ID、两个输入变量和两个目标变量。第一个目标变量是月份,表示客户未完成20000美元总消费的月份数。第二个目标变量是Purchase_2k,表示客户是否最终消费了20000美元。任何尚未消费20000美元的客户不是非响应者,而是删失数据。删失数据是实际响应标签未知的观察结果。例如,客户ID“213”在数据收集时消费了19999美元,他的月份变量将有8的值,Purchase_2k将有0的值。但如果第二天客户213完成了20000美元的消费,因此在收集数据的日期,这个数据不应被视为非响应者,而是一个删失观察。其他直接技术如逻辑回归不能将删失数据纳入模型。然而,生存分析能够考虑它们。
生存分析是死亡时间的建模,但在统计学中有着更广泛的用途。任何事件都可以定义为死亡。例如,结婚的年龄、客户在首次访问网站后首次购买产品的时间、员工的流失时间等都可以作为生存分析的模型。假设T是一个随机变量,表示变量时间。定义函数f(t)为这个随机变量的概率分布函数(pdf)。F(t)是累积分布函数,F(t) = Pr { T < t }。现在,生存函数S(t)的数学表达式如下:
S(t) = 1 - F(t)
最后,定义风险函数(事件发生的瞬时率)如下:
h(t) = f(t) / S(t)
从上述关系中,如果已知生存函数、pdf或风险函数中的一个,其他可以很容易地计算出来。估计这些函数有三种解决方案。以下是三种估计方法:
要在R中对生存分析进行建模,需要加载一些额外的包。以下是开始分析所需的初始步骤。
library(survival)
setwd("D:/")
mydata <- read.csv("D:/worksheet.csv")
attach(mydata)
一旦将数据加载到临时内存中,需要创建一个输入变量的数组。注意,到目前为止,非参数和半参数都有相同的标准代码。将在后续过程中使用不同的代码。
Cust <- Customer_id
l_resp <- Last_Response_tag
Plat <- Platinum_flag
span <- Months
Resp <- Purchase_2k
X <- cbind(l_resp,Plat)
生存分析问题的非参数解提供了一个方向性视图,显示哪个档案具有更好的生存率。它不能被外推到更高的时间跨度预测。使用以下步骤创建生存曲线,并深入了解整个投资组合的生存视图。
kmsurv <- survfit(Surv(span,Resp) ~ 1)
summary(kmsurv)
plot(kmsurv,xlab = "span",ylab="Survival Probability")
以上是在执行代码后得到的图表。让尝试理解这个曲线。这是一个生存曲线,它显示了以下关于人口的事实:
要深入了解这个人口,让看看个体层的生存曲线。层是人口输入变量的不同水平。在本案例研究中,有两个输入变量的2个水平。
执行以下代码以获得这些个体水平的生存曲线。
group1 <- l_resp
group2 <- Plat
kmsurv1 <- survfit(Surv(span,Resp) ~ group1)
summary(kmsurv1)
plot(kmsurv1,xlab = "span",ylab="Survival Probability")
以上是在执行代码后得到的曲线。请注意,具有更高概率值的曲线是group1 =0或上次活动非响应者。因此,可以从这个图中推断,上次活动的非响应者在任何时间点直到12个月不响应这次活动的概率更高。可以对套餐做类似的练习。同样,发现拥有白金套餐的客户在任何月份内消费20000美元的概率更高。
Cox(1972)引入了一种方法,直接关注使用时间和档案变量估计风险函数。以下是想要解决的风险方程:
coxph <- coxph(Surv(span,Resp)~X,method = "breslow")
summary(coxph)
让逐步理解输出结果。
生存分析为几乎不可能精确解决的一系列问题提供了解决方案。这些解决方案目前在行业中并不常见,但没有理由怀疑其在未来的高实用性。本文介绍了如何在R上获得生存分析解决方案的框架。在未来的文章中,还将介绍如何在SAS中进行生存分析。
是否在业务领域找到了可以实施生存分析的机会?是否觉得这篇文章有帮助?最近是否研究过其他前沿建模技术?结果是否令人鼓舞?请在下面的评论中告诉想法。
如果喜欢刚刚阅读的内容,并希望继续分析学习,
订阅电子邮件,
在twitter上关注