背景+遇到的困难
我们团队负责一款短剧APP的研发、维护工作,会有经常性的版本更新。是否大家都会遇到同样的困惑?
- 当前的用户数据如何?有哪些可以提升的点?
- 过去的产品迭代,产生了什么样的效果?对用户数据影响几何?
- 当下和未来,应该安排什么内容进行开发,能获得最大的效益?
- 运营、商务、产品等来源的需求,重要性如何,应该如何评判优先级?
- ......
如果没有数据来驱动决策,这些问题都将是难题,各部门会为了自己的需求被优先安排而强力争取。因为没有不能预先评判工作效果,事后效果往往也不一定好,更不利于各部门友好相处。作为产品技术同事,也疲于奔命,而难以产生良好产品效果。
提出的目标
我们业务主要考核目标是用户留存率和收入,我们以这两个目标出发,提出了几个想要了解的问题
- 留存受哪些因素驱动
- 每个因素贡献多大、应该优化哪些指标
解答留存驱动因素问题,可以帮我们解答哪些指标最重要,后续安排产品迭代就能结合这些数据评估产品迭代后的效果,进而按效果的大小来安排优先级。用这种数据驱动的方式决策,大幅提高产品迭代效果,使得产品技术及其它兄弟部门都有更好的满意度。
任务拆解
留存分析
显著相关因素识别
- 检验哪些自变量与留存率存在显著统计关系(相关性或回归显著性),排除无关因素。
- 多重共线性检测(在这一步加入),计算 VIF(方差膨胀因子),阈值常用 5 或 10。
总体解释度评估
- 量化全部显著因素对留存率的总体解释力(如模型的 R² / 调整后 R²),判断是否具有高解释度或仍存在大量未解释波动。
影响强度与重要性排序
- 比较各显著变量的回归系数、标准化系数或 SHAP 值,形成影响力排名,明确关键驱动因素。
单位变化效应分析与策略优先级
- 分析每个重要变量的边际贡献,即其单位变化对留存率提升的理论影响幅度,并识别"最具杠杆效应"的变量,以指导资源最优配置与策略优先排序。
- 非线性模型对比(RF/XGB + SHAP),验证线性模型的变量重要性是否可靠
聚类分析
- 分析高活跃、付费用户群体特征,为洞察用户、差异化制定策略提供数据依据
执行情况
因变量选取
- 1/3/7用户留存,统计周期内用户首次到达日期,然后以该日期计算1/3/7留存标记
- 用户活跃天数,统计周期内用户活跃天数
自变量选取
尽量选取各个方向的变量,覆盖更多范围
- 用户基础属性,如是否新用户、是否VIP会员等
- 内容消费行为,如视频播放量总和、内容点击量总和等
- 互动行为,如点赞次数、评论次数等
- 搜索与探索,如是搜索次数等
- 内容完成质量,如平均完播率等
- 用户活跃与参与,如签到次数、活动参与次数等
- 特征工程衍生指标,如页面浏览量平方项(探寻二次方系数)等
分析方法
先采用少量自变量进行建模分析,评估R²模型解释度,再慢慢添加自变量,逐步查看模型解释度情况,避免一开始就用大量自变量进行造成不可控的情况。
对比多个模型的的结果,验证自变量贡献的排行情况的一致性。
- 采用皮尔逊相关性分析,计算指标相关性,显著性p<0.05可以认为相关性成立
- 计算自变量间VIF以检测多重共线性,消除共线性影响
- 采用标准化回归系数方法分析,以评估各指标对留存的影响贡献
- 采用多元回归分析,以评估各指标单位变化对留存的影响
- 采用岭回归,分析各指标单位变化对留存的影响系数、各指标对留存影响的贡献度
- 采用弹性网络回归,处理多重共线性和进行特征选择
执行结果
相关性矩阵
利用Python生成了相关性热力图,可以初步评估各参数的相关性情况,因篇幅所限未在文中展示,其结论与下文数据一致。
弹性网络回归结果
弹性网络通过L1L2正则化,能同时处理多重共线性和进行特征选择,尤其适用于特征数远大于样本数的高维数据。
对因变量【用户活跃天】体解释度R²=79.4%(解释度高),交叉验证下模型稳定,给出结果的一部分以作参考:
| 序号 | 自变量 | 原始系数 | 贡献率(%) | 简单解释 |
|------|---------------------------|------------------|-----------|--------------------------------------------------------|
| 1 | click_pv | 1.8376 | 18.00% | 点击越多 → 活跃天数显著增加(最主要驱动力) |
| 2 | page_pv | 1.3155 | 12.89% | 页面浏览量越高 → 活跃明显提升 |
| 3 | click_pv_squared | -0.7797 | 7.64% | 点击过高导致疲劳 → 边际递减 |
| 4 | page_pv_squared | -0.7644 | 7.49% | 浏览过高也出现疲劳效应 |
| 5 | show_pv | 0.7418 | 7.27% | 曝光越高 → 稳定活跃 |
| 6 | signin_ratio | 0.5411 | 5.30% | 签到频率高 → 更愿意持续使用 |
...... |
多元线性回归的时候点击与其他指标VIF值较高,VIF值大于10通常认为存在严重共线性,它会使模型系数估计不稳定,甚至出现符号错误。在我们的初步分析中,'点击量'等指标的VIF值较高,因此我们采用了正则化方法(岭回归、弹性网络)来应对。为了避免多重共线性影响,去除了点击变量,其结果与弹性网络数据大致一致。
岭回归可以通过引入微小偏移的正则化来处理参数间的多重共线性,其结果与弹性网络回归一致。
总结
通过回归分析的结果,可见点击、页面、签到等数据对留存最为重要,但点击和页面浏览数据平方项系数为负,说明用户点击和流量并不是越高越高,存在边际递减效应。
后续产品迭代中,两个思路开展工作。
- 自顶向下:对需求池的的需求,评估其对用户点击、浏览、签到等数据的影响,对重要因子有正向影响的应该优先安排
- 自底向上:对照回归的结果,对重要的因子想出提升的方案,优先安排
有一个很重要的点不得不提,回归的结果,表明的是相关性而不是因果性,这是一次数据统计性的观察,而不是控制变量下的实验,无法说明因果性。有条件的话,应该设计AB测,来验证因果性。
我们作为技术开发大拿,既要能解决实现中的技术问题,做到指哪打哪、使命必达。也要能从更高一层来看待问题,做到回答这个迭代能产生什么效果、更好效果的方案是什么,通过数据驱动,帮团队提着明灯找到前进的方向,为团队创造价值、为产品注入增长动力。