数据分析 36 计(1):生存分析与用户行为如何联系起来

Tian
Tian
Tian
33
文章
7
评论
2021年2月11日22:40:14
评论
709 2629字阅读8分45秒
摘要

生存分析主要用于医学研究,比如医疗方案对病人寿命的影响。
用户行为分析,特别是Customer Lifetime Value,对用户运营和用户增长工作尤为重要。

数据分析 36 计(1):生存分析与用户行为如何联系起来

1. 生存分析

生存分析主要用于医学研究,比如医疗方案对病人寿命的影响。后面用来探究所感兴趣的事件的发生的时间的统计方法。比如产品的寿命分析、工程中的失败时间分析等等。这里病人死亡、产品淘汰和工程失败等称为事件 event。生存分析中有两个重要的概念,一是生存函数,二是风险函数。

生存函数的形式如下,表示为事件未发生的样本比例随时间变化的趋势,比如存活病人样本比例、可正常使用产品比例随时间的变化趋势等。

$$S(x) = Pr(X > x).$$

风险函数的形式如下,表示为事件发生概率的变化率。

$$ b(x) = \lim_{\Delta x \to 0} \frac{P[x\leq X < x + \Delta x | X \geq x]}{\Delta x}. $$

两个函数之间的关系如下。

$$ b(x) = \frac{f(x)}{S(x)} = -\frac{d\ln[S(x)]}{dx}. $$

2. 用户行为

用户行为分析,特别是 Customer Lifetime Value,对用户运营和用户增长工作尤为重要。了解用户在特定时间的行为程度更能帮助运营人员开展运营活动,提高用户价值。而常用的 A/B Testing 方法无法进行跨产品平台的定量分析,回归模型无法动态测量用户随时间变化的行为程度概率。因此借助生存分析可以进行用户留存、用户点击、用户购买等行为随时间变化的趋势。
比如以用户购买行为为例,一般的运营数据,直接进行用户分层查看其转化率,但是这样的数据无法知道用户的动态行为,比如在哪个时间点用户转化率会发生突变,产品的转化率会稳定在多少。生存分析以一个用户的单位,以用户注册时间为实验开始,数据采集截止时间(右删失)或用户转化时间为实验终止,用户最后是否发生购买行为为事件。
(1)数据集说明:

  • user_id:用户 id
  • signup_time:注册时间
  • end_time:事件截止时间(购买时间,当购买时间为空时,以数据采集截止时间填充)
  • sex:性别
  • age:年龄
  • event:事件标志(用户有购买行为该值为 1 ,否则为 0 )
  • duration:时间段(截止时间减去注册时间)

(2)转化率随时间变化趋势:

通过 Kaplan-Meier 无参估计方法绘制出生存估计量曲线发现,在 50 天前后转化率基本稳定在 40%。即在注册后的 50 天内,这一批实验用户中大概有 40% 的用户有购买行为。(注意看 x 轴)

数据分析 36 计(1):生存分析与用户行为如何联系起来

图1-1 未转化率随时间变化的趋势

再次减小时间间隔发现用户转化率在第10天基本无变化,因此运营需要在这个时间点开展运营或营销活动,促进用户转化。

数据分析 36 计(1):生存分析与用户行为如何联系起来

图1-2 减少时间间隔后的未转化率

 

(3)转化率随时间变化的变化速率:

这里的生存分析是将转化率作为事件的发生标记,那么生存函数就描述了未转化率随时间的变化情况,所以转化率的变化率应该是风险率函数 hazard rate function ,即 $ h(t) $。这里用 Nelson-Aalen 无参估计方法绘制累积风险估计量曲线。可以发现转化率在前 5 天缓慢增大,但其后迅速减小。因此运营需要在用户注册后 5 天内采取措施提高用户满意度,促进转化,否则用户后期的购买意愿会减小。

数据分析 36 计(1):生存分析与用户行为如何联系起来

图2 累积风险率随时间的变化趋势

 

(4)生存回归分析:

当需要了解一些例如性别、年龄等协变量是否影响生存时间时,可以用 COX-PH 回归分析变量的显著性,并且还可以根据回归模型预测用户是否会发生转化。通过建模结果发现年龄和性别均显著影响生存时间。结果中的 coef 就是公式中的回归系数,因此 exp(coef) 则是 Cox 模型中最主要的概念风险比(HR-hazard ratio):

  • HR = 1: No effect
  • HR < 1: Reduction in the hazard
  • HR > 1: Increase in Hazard

z 值代表 Wald 统计量,其值等于回归系数 coef 除以其标准误 se(coef),即 z = coef/se(coef);有统计量必有其对应的假设检验的显著性 P 值,其说明 coef 是否与 0 有统计学意义上的显著差别。以性别变量举例,coef 值小于 0 说明 HR 值小于 1,而这里的 Cox 模型是 group 1 相对于 group 0 而言的,那么按照测试数据集来说:male=1,female=0,即男性的转化风险相比女性要低。exp(coef) 等于 0.9916,即风险比例等于 0.9916,说明女性(female=0)增加了 0.9916 倍转化风险,将回归数据按性别分类指标进行分层发现,性别为女性的用户会更早做出购买行为。

​n=10000, number of events=7683
​
                      coef         exp(coef)         se(coef)          z         p            lower 0.95       upper 0.95     
birth_year    -0.0084        0.9916            0.0010      -8.7945  0.0000     -0.0103           -0.0066  ***
sex               -0.1676       0.8457            0.0241       -6.9492  0.0000     -0.2149           -0.1203  ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
Concordance = 0.528
Likelihood ratio test = 124.891 on 2 df, p=0.00000
数据分析 36 计(1):生存分析与用户行为如何联系起来

图3 生存函数在性别上的差异

 

3. 学习资料

书籍推荐:John博士的 《survival analysis techniques for censored and truncated data》2E。该书可配合下面的视频一起使用,该书把入门的基本原理讲解得很透彻,并且有很多简单的例子帮助理解模型和推导。推荐只是使用生存分析做用户分析,看完前8章内容即可。
视频资料:饺子博士(B站)

第一章 生存函数、风险函数 

第二章 删失数据 

其余章节待更新。。。

第五章 Cox回归

个人笔记:糖甜甜甜(知乎)

4. 附件

数据分析 36 计(1):生存分析与用户行为如何联系起来

代码参考来源:

https://reurl.cc/5o132v

weinxin
微信公众号
微信公众号搜索关注「DataGo 数据狗」 数据分析从 0 到 1 再到 2 。
Tian
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: