用户生存分析的主要方法:Kaplan-Meier估计法

Kaplan-Meier估计法(Kaplan-Meier Estimator):

  1. 一种非参数方法,用于估计生存函数。
  2. 通过计算在每个事件发生时间点的生存概率,并将这些概率连乘得到生存函数。

举例说明:会员用户的生存分析
通过举例说明Kaplan-Meier估计法在会员用户生存分析中的应用,可以帮助我们理解如何使用该方法分析和预测会员用户的留存时间。以下是具体步骤和示例:

示例背景

假设我们运营一个在线服务平台,想要分析会员用户的留存时间,即从注册会员到取消会员资格的时间。我们收集了若干会员用户的数据,包括他们的注册时间、取消会员资格的时间(若已取消),以及是否在观察期结束时仍然是会员。

数据示例

用户ID注册时间取消时间状态
12022-01-012022-06-011(事件发生)
22022-02-01-0(删失数据)
32022-03-012022-05-011
42022-04-012022-07-011
52022-05-01-0

状态:1表示用户取消了会员资格,0表示用户在观察期结束时仍然是会员。

步骤

  1. 计算每个时间点的生存概率

    • 生存概率是指在某个时间点上会员用户仍然活跃的概率。
    • Kaplan-Meier估计法通过累积每个时间点的生存概率来计算整体的生存函数。
  2. 构建Kaplan-Meier表格

    • 需要列出每个时间点的事件发生数量、风险集(还活跃的用户数量)、每个时间点的生存概率等。

计算过程

时间点(天)事件数量风险集生存概率累积生存概率
30(1月)0511
60(2月)0511
90(3月)150.81 * 0.8 = 0.8
120(4月)0410.8 * 1 = 0.8
150(5月)140.750.8 * 0.75 = 0.6
180(6月)130.670.6 * 0.67 = 0.4
210(7月)120.50.4 * 0.5 = 0.2

Kaplan-Meier生存曲线

Kaplan-Meier生存曲线可以通过生存概率对时间绘制出来,曲线会在每个事件发生的时间点上下降,表明会员用户取消会员资格的累积影响。

解释

  • 初始时刻(0天),生存概率为1,表示所有会员都还活跃。
  • 在第90天,第一次事件发生(用户3取消会员),生存概率下降到0.8。
  • 随着时间推移,每次事件发生,生存概率继续下降。
  • 最终在第210天,生存概率降到0.2,表示在210天时,仍有20%的会员保持活跃。

应用价值

通过Kaplan-Meier估计法,我们可以:

  • 了解会员用户的留存情况,识别会员用户流失的时间点和比例。
  • 为制定会员保留策略提供数据支持,例如在关键时间点(如90天、180天)采取措施,提高会员留存率。
  • 预测未来会员用户的生存时间,优化会员服务和营销策略。

Kaplan-Meier估计法是分析会员用户生存时间的一种有效工具,能够帮助企业更好地理解用户行为,提升会员保留率。

Python代码

import pandas as pd
import numpy as np
from lifelines import KaplanMeierFitter

# 示例数据集
data = {
    'user_id': [1, 2, 3, 4, 5],
    'start_time': ['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01', '2022-05-01'],
    'end_time': ['2022-06-01', np.nan, '2022-05-01', '2022-07-01', np.nan],
    'event': [1, 0, 1, 1, 0]  # 1表示事件发生(取消会员),0表示右侧截尾(在观察期结束时仍为会员)
}

df = pd.DataFrame(data)
df['end_time'] = pd.to_datetime(df['end_time'])  # 转换为日期时间格式
df['start_time'] = pd.to_datetime(df['start_time'])  # 转换为日期时间格式

# 创建一个KaplanMeierFitter对象
kmf = KaplanMeierFitter()

# 对数据进行拟合
kmf.fit(df['end_time'], event_observed=df['event'])

# 绘制Kaplan-Meier曲线
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
kmf.plot()
plt.title('Kaplan-Meier Estimate')
plt.xlabel('Time')
plt.ylabel('Survival Probability')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rubyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值