如何开发群组分析(Cohort Analysis)的数据APP

如何开发群组分析(Cohort Analysis)的数据APP

群组分析(Cohort Analysis)是一个非常有效的工具,可以帮助公司更好地了解用户需求及习惯。

我们可以通过将具有相似属性(例如,注册日期、首次购买日期、潜在用户来源等)的用户或用户进行分组,然后观察关键绩效指标(KPI:例如,参与度、收入、留存率),收集有用的见解。

下表是消费者APP留存率的群组分析热图。我们将用户按注册月份进行分组,每周观察这些用户的留存率。

图片由作者提供

每一行代表不同的用户群组,每个单元格代表注册后一周内该群组的留存率。例如,我们可以看到,在用户注册 4 周后,2018年2月注册用户留存率为49%,而2018年7月注册用户留存率仅为20%。

研究这些模式有助于公司发现与业务相关的系统性问题,反过来,也有助于验证随时间推移所做的更改。

虽然有很多文章讨论通过 python、R 或 FORTRAN 进行群组分析,但很少有文章关注其中的技术。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
如何征服数据科学面试中的Python编程考试
如何编写出优秀的 Python Class
Python机器学习库:pycarets新增时间序列模块
Huber回归和Ridge回归:如何处理Python中的异常值?

注意:虽然本文的所有分析都在 Intersect平台(该平台可以帮助你构建数据应用程序,自动执行重复数据任务)中进行,你可以选择使用你喜欢的工具或语言,执行以上步骤。

数据说明

使用的数据:

https://archive.ics.uci.edu/ml/datasets/Online+Retail+II

该零售数据集包含一家英国在线零售店在 2009 年 12 月 1 日至 2012 年 12 月 9 日期间的所有交易记录。该公司主要销售独一无二的、适合各种场合的礼品。

数据集中的每一行都是用户订购的单独的单品。具有相同发票编号(第一列)的单品属于同一订单的一部分。InvoiceDate 是购买的日期/时间,而Customer ID 是每个用户的唯一标识符。

数据截图

图片由作者提供

我们感兴趣的部分是按月群组跟踪保留率——换句话说,对于每个用户群组(按首次购买的月份分组),在他们首次购买后,每个月重复订单的百分比占多少?

数据准备

缺失的用户 ID

数据集包含一些缺失用户 ID 的行。如果我们知道缺失的内容,我们就可以估算这些值,但不幸的是,在不了解业务的情况下,我们唯一能做的就是删除这些行。

图片由作者提供

负订单数量

有些订单的数量为负数;此类订单很可能是退货订单。退货订单无法体现用户参与度,所以我们也删除了这些行。有人可能会觉得,我们还应该删除附加在这些最终退货订单上的原始订单。然而目前:

  • 我们不知道如何识别这些订单
  • 即使我们删掉了这些订单,导致退货的订单仍然代表用户参与度——因此,我们这样做是符合目标的。

为了解决这类问题,我们过滤了数量 > 0 的数据行。

图片由作者提供

汇总成订单

正如我们上面提到的,每张发票可以有很多行,因为每一行对应一个单品。但是,对于参与度,我们感兴趣的是分析订单,而不是订单中的单品。我们将各单品汇总在一起,制成顺序不同的订单列表。

图片由作者提供

群组分析

计算每个用户所属的群组

在本节中,我们将确定每个用户第一次下单的月份(即所属群组列)

首先,我们按发票日期的升序排序,并计算第一笔订单的日期:

图片由作者提供

接着,我们从该日期中提取月份名称和年份,并将这两列连接起来,形成“群组名称”列。

图片由作者提供

最后,我们将生成的数据集连接到上面的“Orders”数据集,将“群组名称”列添加至其中。

图片由作者提供

生成群组分析表

接下来,对于每个订单,我们计算下订单的时间段(订单月份 – 群组月份)

图片由作者提供

输出结果如下所示(注意末尾的句点列)

图片由作者提供

最后,我们对表进行分析,生成群组分析报告,其中每一行是一个单独的群组,每列显示随后几个月的留存率。

图片由作者提供

在对列和行进行快速排序后,我们得到了群组分析表。

图片由作者提供

上图显示了每个月各群组中的回头客数量。但是,为了将这些值转换为百分比,我们将每一列的值除以第一列的值,并乘以 100。

生成热图

最后,我们将表格转换为热图,快速识别模式。图片右侧告诉我们,方块越接近红色,保留率越高(越热),反之亦然,保留率越低,方块越接近于蓝色。

有一半的方块都是蓝色,因为我们没有这些群组的数据(迄今还未收集到)

图片由作者提供

有趣的见解

我们注意到, 2010 年 12 月的群组在第 11 个月(大概对应于下一年的假期)的回购率非常高。我们在每个群组中都看到了类似的峰值,但没有群组的的峰值和第一个群组一样高。这个群组有什么特别之处吗?也许,该群组的用户们本质上是“假期购物者”,他们更倾向于在假期期间回购商品!

如果你在经营业务,希望提高用户回头率,你需要定期研究群组及它们的习惯。希望本篇文章对你有所帮助!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Ankit Gordhandas
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/build-a-data-app-for-cohort-analysis-5d4e3161a988